System and method for detecting and characterizing inputs on a touch sensor surface

ABSTRACT

One variation of a system for interfacing a computer system and a user includes: a touch sensor defining a touch sensor surface and extending over an array of sense electrode and drive electrode pairs; a vibrator coupled to the touch sensor surface; and a controller configured to: detect application of an input onto the touch sensor surface and a force magnitude of the first input at a first time; execute a down-click cycle in response to the force magnitude exceeding a threshold magnitude by driving the vibrator to oscillate the touch sensor surface; map a location of the input on the touch sensor surface to a key of a keyboard represented by the touch sensor surface; and output a touch image representing the key and the force magnitude of the input on the touch sensor surface at approximately the first time.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/845,751, filed on 18 Dec. 2017, which is a continuation-in-partapplication of U.S. patent application Ser. No. 15/476,732, filed on 31Mar. 2017, which claims the benefit of U.S. Provisional Application No.62/316,417, filed on 31 Mar. 2016, and U.S. Provisional Application No.62/343,453, filed on 31 May 2016, which are hereby incorporated in theirentireties by this reference.

This application is related to U.S. patent application Ser. No.14/499,001, filed on 26 Sep. 2014, which is hereby incorporated in itsentirety by this reference.

TECHNICAL FIELD

This invention relates generally to the field of touch sensors and morespecifically to a new and useful system for human-computer interfacingin the field of touch sensors.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic representation of a system;

FIG. 2 is a flowchart representation of one variation of the system;

FIG. 3 is a schematic representation of one variation of the system;

FIG. 4 is a schematic representation of one variation of the system;

FIG. 5 is a flowchart representation of one variation of the system;

FIG. 6 is a schematic representation of one variation of the system;

FIGS. 7A and 7B is a schematic representation of one variation of thesystem;

FIG. 8 is a flowchart representation of one variation of the system;

FIG. 9 is a schematic representation of one variation of the system;

FIGS. 10A and 10B are flowchart representations of one variation of themethod;

FIGS. 11A-11H are schematic representations of variations of the system;and

FIGS. 12A and 12B are schematic representations of one variation of thesystem.

DESCRIPTION OF THE EMBODIMENTS

The following description of embodiments of the invention is notintended to limit the invention to these embodiments but rather toenable a person skilled in the art to make and use this invention.Variations, configurations, implementations, example implementations,and examples described herein are optional and are not exclusive to thevariations, configurations, implementations, example implementations,and examples they describe. The invention described herein can includeany and all permutations of these variations, configurations,implementations, example implementations, and examples.

1. System and Method

As shown in FIG. 1, a system 100 for human-computer interfacingincludes: a touch sensor 110 comprising a rigid backing, comprising anarray of sense electrode and drive electrode pairs 116, and defining atouch sensor surface 112 and extending over the array of sense electrodeand drive electrode pairs 116; a first vibrator 120 coupled to the touchsensor 110 and configured to oscillate a mass within a plane parallel tothe touch sensor surface 112; and a coupler 132 arranged below the touchsensor 110 and configured to absorb displacement of the touch sensorsurface 112 during activation of the first vibrator 120. The system 100also includes a controller 150 configured to: detect application of afirst input onto the touch sensor surface 112 and a first forcemagnitude of the first input at a first time based on a first change inresistance between a first sense electrode and drive electrode pair 116in the touch sensor 110; execute a down-click cycle in response to thefirst force magnitude exceeding a first threshold magnitude by drivingthe first vibrator 120 to oscillate the touch sensor surface 112; map afirst location of the first input on the touch sensor surface 112 to akey of a keyboard represented by the touch sensor surface 112; andoutput a first touch image representing the key and the first forcemagnitude of the first input on the touch sensor surface 112 atapproximately the first time.

One variation of the system 100 includes a touch sensor 110; a firstvibrator 120; a second vibrator 120; a speaker; and a controller 150.The touch sensor 110 includes: a substrate 114 mounted to a chassis 130of a computing device and configured to shift within a vibration planeparallel to a broad planar face of the substrate 114; an array of senseelectrode and drive electrode pairs 116 patterned across the substrate114; a resistive layer 124 arranged over the substrate 114 and includinga material exhibiting changes in local bulk resistance responsive tovariations in magnitude of force applied to the touch sensor surface112; and an overlay 164 arranged over the resistance layer opposite thesubstrate 114 and defining a touch sensor surface 112. The firstvibrator 120 is coupled to a first end of the substrate 114 and isconfigured to vibrate the first end of the substrate 114 within thevibration plane during a first click cycle. The second vibrator 120 iscoupled to a second end of the substrate 114 opposite the first end andis configured to vibrate the substrate 114 within the vibration planeduring a second click cycle. The speaker is configured to replay a clicksound during the first click cycle and the second click cycle. Thecontroller 150 is configured: to trigger the speaker to replay the clicksound and to trigger the first vibrator 120 to execute a first clickcycle in response to application of a force exceeding a threshold forcemagnitude on a first region of the touch surface over the first end ofthe substrate 114; to trigger the speaker to replay the click sound andto trigger the second vibrator 120 to execute a second click cycle inresponse to application of a force exceeding the threshold forcemagnitude on a second region of the touch surface over the second end ofthe substrate 114; and to output a command in response to application ofa force exceeding the threshold force magnitude on the touch sensorsurface 112, as shown in FIGS. 2 and 8.

The system 100 executes a method S100 for detecting and characterizinginputs including: at a first time, detecting application of a firstinput onto a touch sensor surface 112 and a first force magnitude of thefirst input in Block S110; in response to the first force magnitudeexceeding a first threshold magnitude, actuating a first vibrator 120coupled to the touch sensor surface 112 according to a down-click cyclein Block S120; and, at a second time succeeding the first time,detecting a second force magnitude of the first input in Block S130. Themethod S100 also includes, in response to a second threshold magnitudeexceeding the second force magnitude, the second threshold magnitudeless than the first threshold magnitude: mapping a first location of thefirst input on the touch sensor surface 112 at approximately the secondtime to a particular key of a keyboard associated with a region of thetouch sensor surface 112 coincident the first location in Block S140;and outputting an identifier of the particular key and the first forcemagnitude of the first input on the touch sensor surface 112 atapproximately the second time in Block S150.

2. Applications

Generally, the system 100 functions as a human-computer interface devicethat detects inputs by a user (e.g., a human user), transforms theseinputs into machine-readable commands, communicates these commands to acomputing device, and supplies feedback (e.g., haptic feedback) inreal-time to indicate to a user that an input was detected. Inparticular, the system 100 includes a touch sensor 110 through whichinputs are detected, a haptic feedback module (e.g., a speaker and twoor more vibrators) through which feedback is supplied to a user, and acontroller 150 that outputs commands to a connected computing devicebased on inputs detected through the touch sensor 110 and that triggershaptic feedback through the haptic feedback module. The system 100 can,therefore, execute Blocks of the method S100 to detect and respond toinputs on the touch sensor surface 112.

The system 100 can be integrated into a computing device to define atouch sensor surface 112 (e.g., a substantially flat touch-sensitivesurface), such as spanning an integrated trackpad and/or an integratedkeyboard. The system 100 detects inputs on the touch sensor surface 112,such as application of a finger or stylus that exceeds a thresholdminimum applied force or pressure, and issues audible and/or vibratory(hereinafter “haptic”) feedback to a user in response to such an inputin order to mimic the auditory and tactile response of a mechanical snapbutton that is depressed and released. The system 100 can thus provide auser with a perception that a mechanical button was depressed andreleased though the system 100 defines a touch sensor surface 112 thatis vertically constrained and features no local moving elements. Whenintegrated into a computing device, such as a laptop computer (as shownin FIGS. 7A AND 7B), the system 100 can output keystrokes, cursorvectors, and/or scroll commands, etc. based on inputs detected on thetouch sensor surface 112, and the computing device can execute processesand/or update a graphical user interface rendered on an integrateddisplay based on such commands received from the system 100.Alternatively, the system 100 can be integrated into a peripheraldevice, such as a peripheral keyboard or a peripheral keyboard withintegrated trackpad, which can cooperate with a computing device toexecute processes and/or update a graphical user interface rendered on adisplay integrated into the computing device.

In one implementation in which the system 100 defines a keyboard, thesystem 100 can associate discrete regions on the touch sensor surface112 with key output commands. The system 100 can output a key outputcommand and trigger one of the first and second vibrators to execute aclick cycle in response to detection of an input on a corresponding keyregion of the touch sensor surface 112. The system 100 can execute aclick cycle to mimic depression (and release) of a mechanical keyboardkey when a key region of the touch sensor surface 112 is depressed byactuating the first vibrator 120 and/or second vibrator 120 to oscillatea region of the touch sensor surface 112 coincident the input.

As shown in FIGS. 12A and 12B, the system defines a non-mechanicalstructure that executes the method S100 in order to catalyze, for theuser, a perception of a mechanical key through remote vibration and/oraudio signals; the system can manifest as a keyboard surface that can bedynamic, virtually modified to represent different types of keys,different keyboard spacing, transition into a trackpad, or other surfacewithout compromising the tactile response of a mechanical keyboard. Inparticular, the system 100 can execute a down-click cycle to provide auser with the perception of depression of the mechanical keyboard key byactuating one or more vibrators and/or audio drivers 140 proximal theinput according to an oscillation profile (e.g., oscillation frequency,amplitude, and duration) corresponding to a force or pressure magnitudeof the input, a velocity of application of the input, proximity of theinput to a centroid of a key of the keyboard, etc. Similarly, the system100 can execute an up-click cycle in Block S132 to mimic retraction of amechanical key of a mechanical keyboard in response to release of theinput from the touch sensor surface 112 by actuating one or morevibrators and/or audio drivers 140 proximal the input according to arelease oscillation profile corresponding to a force or pressuremagnitude of the release of the input, a velocity of application of therelease of the input, proximity of the input to a centroid of a key ofthe keyboard, etc. Therefore, the system 100 can oscillate selectregions of the touch sensor surface 112 and emit click-sounds defined asa function of force, velocity, duration, and/or other characteristics ofapplication and release of an input to the touch sensor surface 112 inorder to replicate a sensation of application and release of amechanical key of a mechanical keyboard.

For example, the system 100 can: activate the vibrator 120 and triggerthe audio driver 140 to output a click sound when an input applied tothe touch sensor surface 112 exceeds a first threshold force (orpressure) magnitude in order to replicate a tactile feel and audiblesound of a mechanical key being depressed; and then activate thevibrator 120 and trigger the audio driver 140 to output a(lower-frequency) click sound when the same input is lifted to less thana second threshold magnitude—less than the first threshold magnitude—onthe touch sensor surface 112 in order to replicate a tactile feel andaudible sound of a depressed mechanical key being released. The system100 can thus provide the user with a tactile impression that a key wasdepressed and released though the system 100 itself defines asubstantially rigid exo-structure with no external moving parts orsurfaces (e.g., a button).

The system 100 can also reconfigure the keyboard in softwareautomatically and in real-time by shifting, resizing, and/or redefiningkey regions—such as if a user selects an alternative keyboard layout(e.g., a French or Mandarin keyboard from a QWERTY keyboard), reorientsthe keyboard, or zooms the keyboard in or out (e.g., by entering a pinchor expand gesture on the touch sensor surface 112)—and continue toprovide haptic feedback through the haptic feedback module, which may bearranged substantially remotely from the touch sensor surface 112.Therefore, the system 100 can reconfigure placement and orientation ofkeys of the keyboard on the touch sensor surface 112 to align with userpreferences (e.g., to be more ergonomic).

The system 100 is described herein as a reconfigurablepressure-sensitive touch sensor surface 112 with keyboard overlay 164that can be integrated into or connected to a computing device (e.g., alaptop computer, a tablet) and that detects inputs on the touch sensorsurface 112, provides haptic feedback to a user in response to suchinputs, and outputs commands (e.g., selection of a particular key of thekeyboard) to another processing unit or controller 150 within theintegrated or connected computing device based on these inputs. However,the system 100 can alternatively define standalone or peripheral devicesthat can be connected to and disconnected from a computing device andcan output commands to the computing device when connected based oninputs detected on the touch sensor surface 112. For example, the system100 can alternatively define a remote controller 150, a handheldcomputer pointing device (or “mouse”), a game controller 150, a wallphone, a smartphone, or a wearable, etc.

3. Touch Sensor

As shown in FIGS. 1 and 9, the touch sensor 110 includes: an array ofsense electrode and drive electrode pairs 116 patterned across asubstrate 114 (e.g., a fiberglass PCB); and a resistive layer 124arranged over the substrate 114 in contact with the sense electrode anddrive electrode pairs 116, defining a material exhibiting variations inlocal bulk resistance and/or local contact resistance responsive tovariations in applied force, and defining a touch sensor surface 112opposite the substrate 114. As described in U.S. patent application Ser.No. 14/499,001, the resistive touch sensor 110 can include a grid ofinter-digitated drive electrodes and sense electrodes patterned acrossthe substrate 114. The resistive layer 124 can span gaps between eachdrive and sense electrode pair across the substrate 114 such that, whena localized force is applied to the touch sensor surface 112, theresistance across an adjacent drive and sense electrode pair variesproportionally (e.g., linearly, inversely, quadratically, or otherwise)with the magnitude of the applied force. As described below, thecontroller 150 can read resistance values across each drive and senseelectrode pair within the touch sensor 110 and can transform theseresistance values into a position and magnitude of one or more discreteforce inputs applied to the touch sensor surface 112.

In one implementation, the system 100 includes a rigid substrate 114,such as in the form of a rigid PCB (e.g., a fiberglass PCB) or a PCB ona touch sensor surface 112 (e.g., an aluminum backing plate); and rowsand columns of drive and sense electrodes are patterned across the topof the substrate 114 to form an array of sense electrodes. Theforce-sensing layer is installed over the array of sense electrodes andconnected to the substrate 114 about its perimeter.

4. Controller

Generally, the controller 150 functions to drive the touch sensor 110,to read resistance values between drive and sense electrodes during ascan cycle, and to transform resistance data from the touch sensor 110into locations and magnitudes of force inputs over the touch sensorsurface 112. The controller 150 can also function to transform locationsand/or magnitudes of forces recorded over two or more scan cycles into akeystroke corresponding to a particular key of a keyboard, a gesture, acursor motion vector, or other command and to output such command to acomputing device in which the system 100 is installed or integrated. Forexample, the controller 150 can access preprogrammed command functionsstored in memory in the computing device, such as command functionsincluding a combination of trackpad and keyboard values readable by thecomputing device to move a virtual cursor, to scroll through a textdocument, to expand a window, to translate and rotate a 2D or 3D virtualgraphical resource within a window, or to enter text and keyboardshortcuts, etc.

In one implementation, the controller 150 includes: an array columndriver (ACD); a column switching register (CSR); a column driving source(CDS); an array row sensor (ARS); a row switching register (RSR); and ananalog to digital converter (ADC); as described in U.S. patentapplication Ser. No. 14/499,001. In this implementation, the touchsensor 110 can include a variable impedance array (VIA) that defines:interlinked impedance columns (IIC) coupled to the ACD; and interlinkedimpedance rows (IIR) coupled to the ARS. During a resistance scanperiod: the ACD can select the IIC through the CSR and electricallydrive the IIC with the CDS; the VIA can convey current from the drivenIIC to the IIC sensed by the ARS; the ARS can select the IIR within thetouch sensor 110 and electrically sense the IIR state through the RSR;and the controller 150 can interpolate sensed current/voltage signalsfrom the ARS to achieve substantially accurate detection of proximity,contact, pressure, and/or spatial location of a discrete force inputover the touch sensor 110 for the resistance scan period within a singlesampling period.

In one implementation, a row of drive electrodes in the touch sensor 110can be connected in series, and a column of sense electrodes in theresistive touch sensor 110 can be similarly connected in series. Duringa sampling period, the controller 150 can: drive a first row of driveelectrodes to a reference voltage while floating all other rows of driveelectrodes; record a voltage of a first column of sense electrodes whilefloating all other columns of sense electrodes; record a voltage of asecond column of sense electrodes while floating all other columns ofsense electrodes; record a voltage of a last column of sense electrodeswhile floating all other columns of sense electrodes; drive a second rowof drive electrodes to the reference voltage while floating all otherrows of drive electrodes; record a voltage of the first column of senseelectrodes while floating all other columns of sense electrodes; recorda voltage of the second column of sense electrodes while floating allother columns of sense electrodes; record a voltage of the last columnof sense electrodes while floating all other columns of senseelectrodes; and finally drive a last row of drive electrodes to thereference voltage while floating all other rows of drive electrodes. Thecontroller 150 can then record a voltage of the first column of senseelectrodes while floating all other columns of sense electrodes; recorda voltage of the second column of sense electrodes while floating allother columns of sense electrodes; and record a voltage of the lastcolumn of sense electrodes while floating all other columns of senseelectrodes in Block S110. The controller 150 can thus sequentially driverows of drive electrodes in the resistive touch sensor 110; andsequentially read resistance values (e.g., voltages) from columns ofsense electrodes in the resistive touch sensor 110 in Block S110.

The controller 150 can therefore scan drive and sense electrode pairs(or “sense electrodes”) during a sampling period in Block S110. Thecontroller 150 can then merge resistance values read from the touchsensor 110 during one sampling period into a single touch imagerepresenting locations and magnitudes of forces (or pressures) appliedacross the touch sensor surface 112 in Block S130. The controller 150can also: identify discrete input areas on the touch sensor surface 112(e.g., by implementing blob detection to process the touch image);calculate a pressure magnitude on an input area based on total forceapplied across the input area; identify input types (e.g., finger,stylus, palm, etc.) corresponding to discrete input areas; associatediscrete input areas with various commands; and/or label discrete inputareas in the touch image with pressure magnitudes, input types,commands, etc. in Block S130. The controller 150 can repeat this processto generate a (labeled) touch image during each sampling period duringoperation of the system 100.

The controller 150 can be arranged on the substrate 114 to form a fullycontained touch sensor 110 that: receives power from the connectedcomputing device; detects inputs on the touch sensor surface 112;outputs haptic feedback, such as in the form of a mechanical vibrationand sound, in response to detected inputs; and outputs commandscorresponding to detected inputs on the touch sensor surface 112.Alternatively, all or portions of the controller 150 can be remote fromthe substrate 114, such as arranged within the connected computingdevice and/or physically coextensive with one or more processors withinthe computing device.

5. Haptics

The system 100 includes a haptic feedback module, including a vibrator120 and an audio driver 140 (e.g., a speaker). Generally, in response toan input—on the touch sensor surface 112—that exceeds a threshold forceor a threshold pressure, the controller 150 can simultaneously triggerthe vibrator 120 to output a vibratory signal and can trigger thespeaker to output an audible signal (hereinafter a “click cycle”) thattogether mimic the feel and sound, respectively, of a mechanical snapbutton when actuated, as shown in FIG. 8.

The vibrator 120 can include a mass on an oscillating linear actuator,an eccentric mass on a rotary actuator, a mass on an oscillatingdiaphragm, or any other suitable type of vibratory actuator. In oneexample, the vibrator 120 includes a mass coupled to an oscillatinglinear actuator that oscillates the mass along a single actuation axiswhen actuated. In this example, the vibrator 120 can be coupled to thesubstrate 114 with the actuation axis of the vibrator 120 parallel tothe vibration plane of the system 100, and the coupler 132 can constrainthe substrate 114 in all but one degree of translation substantiallyparallel to the actuation axis of the vibrator 120. In another example,the vibrator 120 includes an eccentric mass coupled to a rotary actuatorthat rotates the eccentric mass about an axis of rotation when actuated.In this example, the vibrator 120 can be coupled to the substrate 114with the axis of rotation of the vibrator 120 perpendicular to thevibration plane of the system 100, and the coupler 132 can constrain thesubstrate 114 in all but two degrees of translation normal to the axisof rotation of the vibrator 120. Alternatively, the vibrator 120 caninclude a mass on an oscillating diaphragm or any other suitable type ofvibratory actuator. The vibrator 120 can also include a piezoelectricactuator, a solenoid, an electrostatic motor, a voice coil, or anactuator of any other form or type configured to oscillate the substrate114 in the vibration plane. Furthermore, the vibrator 120 can be mountedon the underside of the substrate 114 opposite the resistive layer 124in order to reduce the lateral and/or longitudinal footprint of thesystem 100, or the vibrator 120 can be mounted on the top of thesubstrate 114 adjacent and outside of the sense and drive electrodes inorder to reduce the height of the system 100.

The vibrator 120 can therefore be mounted directly on the substrate 114or on a rigid backing coupled to the substrate 114 opposite theresistive layer 124. For example, the system 100 can include an array ofsense electrode and drive electrode pairs 116 patterned across a firstside of a substrate 114 (e.g., a “PCB”), and the vibrator 120 can beinstalled proximal the center of the substrate 114 opposite the senseand drive electrodes. The system 100 can also include multiplevibrators, such as one vibrator 120 arranged under each half or undereach quadrant of the touch sensor surface 112, as described below. Inthis implementation, the controller 150 can actuate all vibrators in theset during a click cycle. Alternatively, the controller 150 canselectively actuate one or a subset of the vibrators during a clickcycle, such as a single vibrator 120 nearest the centroid of a newestinput detected on the touch surface between a current scan cycle and alast scan cycle, as described below. However, the haptic feedback modulecan include any other number of vibrators in any other configuration andcan actuate any other one or combination of vibrators during a clickcycle.

The vibrator 120 can exhibit a resonant (e.g., natural) frequency, andthe controller 150 can trigger the actuator to oscillate at thisresonant frequency during a click cycle. For example, when the system100 is first powered on, the controller 150 can execute a test routine,including ramping the vibrator 120 from a low frequency to a highfrequency, detecting a resonant frequency between the low frequency andthe high frequency, and storing this resonant frequency as an operatingfrequency of the vibrator 120 during the current use session.

5.1 Audio Driver

The system 100 can also include a speaker, buzzer, and/or other audiodriver 140 configured to output a “click” sound during a click cycle. Inone implementation, the speaker is arranged on the substrate 114 andmoves with the substrate 114 during a click cycle. In thisimplementation, the resistive layer 124 can include one or moreperforations that define a speaker grill over the speaker, and thespeaker can output sound through the perforation(s) to a user.Alternatively, the perimeter of the resistive layer 124 can be offsetinside a receptacle in the computing device in which the substrate 114and resistive layer 124 are housed in order to form a gap between thecomputing device and the resistive layer 124, and the speaker can outputsound that is communicated through this gap to a user. Alternatively,the speaker can be arranged remotely from the substrate 114. Forexample, the speaker can define a discrete speaker arranged within thecomputing device's chassis 130. In these examples, the computing devicecan thus include a primary speaker (or a set of primary speakers), andthe system 100—integrated into the computing device—can include asecondary speaker that replays a click sound—independent of the primaryspeakers—during a click cycle to mimic the sound of an actuatedmechanical snap button.

In one implementation, the system 100 includes a housing 160 (asdescribed below) that defines a receptacle configured to accept thetouch sensor 110, the controller 150, the vibrator 120, and/or the audiodriver 140. The audio driver 140 can mount to the touch sensor 110opposite the touch sensor surface 112 within the housing 160. The touchsensor surface 112 can, thus, define a keyboard surface inset from anedge of the receptacle to form a gap configured to pass sound output bythe audio driver 140. Therefore, the housing 160 and other components ofthe system 100 can cooperate to form a gap or perforation through whichthe audio driver 140 can output the sound. In one variation, the housing160 can define the gap surrounding individual keys of the keyboard, suchthat sound emitted from the audio driver 140 can be communicated throughthe keyboard itself (as opposed to from a side or a bottom portion ofthe keyboard) for the sensation that the “click” sound results directlyfrom depression of a key of the keyboard.

Alternatively, the housing 160 also includes: a speaker grill, such asin the form of an open area or perforations across a region of thebottom of the housing 160 opposite the touch sensor surface 112, forwhich sound output by the speaker is communicated outside of the housing160; and a set of pads (or “feet”) across its bottom surface thatfunction to maintain an offset (e.g., 0.085″) gap between the speakergrill and a flat surface on which the system 100 is placed in order tolimit muffling of sound output from the speaker by this adjacentsurface. In particular, the system 100 can include: a housing 160containing the touch sensor 110, the vibrator 120, the audio driver 140,and the controller 150 and defining a speaker grill adjacent the audiodriver 140 and facing opposite the touch sensor surface 112; and one ormore pads, each pad extending from the housing 160 opposite the touchsensor surface 112, defining a bearing surface 181 configured to slideacross a table surface, and configured to offset the speaker grill abovethe table surface by a target gap distance. Thus, with the system 100placed on a substantially flat surface, the speaker and speaker grillcan cooperate to output sound that is reflected between the bottomsurface of the housing 160 and the adjacent surface; and this sound maydisperse laterally and longitudinally outward from the housing 160 suchthat a user may audibly perceive this sound substantially regardless ofhis orientation relative to the system 100. Alternatively, the housing160 can define one or more speaker grills on its side(s), across its topadjacent the touch sensor surface 112, or in any other position ororientation. Yet alternatively, the haptic feedback module can include aspeaker cavity that vibrates with the speaker when the speaker is drivenin order to output a “click” sound from the system 100.

Alternatively, in the implementation in which the system 100 isintegrated into a computing device as a keyboard, the speaker can bephysically coextensive with the primary speaker of the computing device,and the primary speaker can output both a “click” sound and recorded andlive audio (e.g., music, an audio track of a video replayed on thecomputing device, live audio during a video or voice call) substantiallysimultaneously. Furthermore, when an audio system within the computingdevice is muted by a user, the computing device can mute all audiooutput from the computing device except “click” sounds in response toinputs on the touch sensor surface 112. Similarly, the computing devicecan trigger the speaker to output “click” sounds at a constant decibellevel (or “loudness”) regardless of an audio level set at the computingdevice in order to maintain a substantially uniform “feel” of an inputon the touch sensor surface 112 despite various other functions executedby and settings on the computing device.

5.2 Click Cycle

In response to an input on the touch sensor surface 112 that exceeds atotal or peak threshold force (or pressure) magnitude, the controller150 drives both a vibrator 120 nearest the location of the detectedinput and the speaker substantially simultaneously in a “click cycle” inorder to both tactilely and audibly mimic actuation of a mechanical snapbutton. For example, in response to detection of such an input, thecontroller 150 can: determine the location of the input; select aparticular vibrator 120—from a set of vibrators coupled to the substrate114—nearest the location of the input in Block S120; trigger a motordriver to drive the particular vibrator 120 according to a square wavefor a target click duration (e.g., 250 milliseconds) whilesimultaneously replaying a “click” sound byte through the speaker inBlock S121.

During a click cycle, the controller 150 can also lag or lead replay ofthe click sound byte relative to the vibrator 120 drive signal, such asby +/−50 milliseconds, to achieve a particular haptic response during aclick cycle. Similarly, during a click cycle, the controller 150 candelay audio output by the speaker by an “onset time” corresponding to atime for the vibrator 120 to reach a peak output power or peakoscillation amplitude and within a maximum time for a human to perceivethe audio and vibration components of the click cycle as correspondingto the same event (e.g., several milliseconds). For example, for avibrator 120 characterized by an onset time of 10 milliseconds, thecontroller 150 can delay audio output by the speaker by 5-10milliseconds after the vibrator 120 is triggered during a click cycle.Therefore, when the controller 150 detects application of a force—thatexceeds a first threshold force (or pressure) magnitude—on the touchsensor surface 112 at a first time in Block S110, the controller 150can: activate the vibrator 120 at a second time immediately succeedingthe first time (e.g., within 50 milliseconds of the first time andduring application of the first input on the touch sensor surface 112);and activate the audio driver 140 at a third time succeeding the secondtime by a delay duration corresponding to an onset time of the vibrator120 (e.g., 10 milliseconds) in which the vibrator 120 reaches a minimumoscillation magnitude in Block S121.

As described above, the controller 150 can execute a click cycle inresponse to an input on the touch sensor surface 112 that meets orexceeds one or more preset parameters. For example, the controller 150can initiate a click cycle in response to detection of an input on thetouch sensor surface 112 that exceeds a threshold pressure correspondingto a common pressure needed to actuate a mechanical button or snapdome.In this example, the controller 150 can compare total or maximumpressure of an input detected on the touch sensor surface 112 to apreset static pressure threshold to identify or characterize the input.Alternatively, the controller 150 can implement a user-customizedpressure threshold, such as based on a user preference for greater inputsensitivity (corresponding to a lower pressure threshold) or based on auser preference for lower input sensitivity (corresponding to a greaterpressure threshold) set through a graphical user interface executing ona computing device connected to the system 100. In another example, thecontroller 150 can segment the touch sensor surface 112 into two or moreactive and/or inactive regions, such as based on a current mode ororientation of the system 100, and the controller 150 can discard aninput on an inactive region of the touch sensor surface 112 but initiatea click cycle when an input of sufficient magnitude is detected withinan active region of the touch sensor surface 112.

In this implementation, the controller 150 can additionally oralternatively assign unique threshold force (or pressure) magnitudes todiscrete regions of the touch sensor surface 112 and selectively executeclick cycles through a common haptic feedback module in response toapplication of forces (or pressures)—on various regions of the touchsensor surface 112—that exceed assigned threshold magnitudes. Forexample, the controller 150 can: assign a first threshold magnitude toregions of the touch sensor surface 112 corresponding to keys typicallydepressed by a pinky and/or thumb; and assign a second thresholdmagnitude—greater than the first threshold magnitude in order to rejectaberrant clicks on the touch sensor surface 112—to a region of the touchsensor surface 112 corresponding to keys infrequently depressed (e.g.,“function” keys and/or a “caps lock” key).

The system 100 can therefore detect inputs of different force magnitudeson the touch sensor surface 112, assign an input type to an input basedon its magnitude, serve different haptic feedback through the vibrator120 and speaker based on an input's assigned type, and output differentcontrol functions based on an input's assigned type.

In one variation, the controller 1500: executes a “standard click cycle”in response to a “standard click input” of total or peak force magnitudegreater than a first force (or pressure) threshold and less than asecond force threshold; and executes a “deep click cycle” in response toa “deep click input” of total or peak force magnitude that exceeds thesecond force threshold as shown in FIG. 10B. In this variation, during adeep click cycle, the controller 150 can drive a particular vibrator 120nearest the location of the deep click input for an extended duration(e.g., 750 milliseconds) in order to tactilely indicate to a user that adeep click input was detected and handled. The controller 150 cansimilarly deactivate the audio driver 140 or drive the audio driver 140over an extended duration during a deep click cycle. In one example, thecontroller 150 can execute a keyboard “shift” control function inresponse to a standard click input on a “shift key” region of a keyboarddefined on the touch sensor surface 112 and can execute a “caps lock”control function in response to a deep click input on the “shift key”region of the keyboard. In a similar example, the controller 150 canoutput a lowercase “a” keystroke in response to a standard click inputon an “a” key region of the keyboard defined on the touch sensor surface112 and can execute a capital “A” keystroke response to a deep clickinput on the “a” key region of the keyboard.

In one example, the controller 150: detects application of a first inputon the touch sensor surface 112 and a first force magnitude of the firstinput at a first time based on a first change in resistance between afirst sense electrode and drive electrode pair 116 below the touchsensor surface 112; executes a first click cycle over a first duration(e.g., a standard click cycle) and labels the first input as of a firstinput type in response to the first force magnitude falling between thefirst threshold magnitude and the second threshold magnitude. In thisexample, the controller 150 can also: detect application of a secondinput onto the touch sensor surface 112 and a second force magnitude ofthe second input at a second time based on a second change in resistancebetween a second sense electrode and drive electrode pair 116 below thetouch sensor surface 112; and execute a second click cycle over a secondduration exceeding the first duration (e.g., a deep click cycle) andlabel the second input as of a second input type distinct from the firstinput type in response to the second force magnitude exceeding thesecond threshold magnitude.

In another example, the controller 150 can transition or toggle betweeninput modes in response to a deep click input on the touch sensorsurface 112, such as between a first mode in which the controller 150outputs relative position change commands to move a cursor and a secondmode in which the controller 150 outputs absolute position commandsdefining the location of the cursor within a view window (e.g., over adesktop).

The controller 150 can similarly implement multi-level click cycles,such as three, four, or more additional click cycles as an object isdepressed on the touch sensor surface 112 at increasing forcemagnitudes. The controller 150 can also output various commandsresponsive to application of a force on the touch sensor surface 112that falls within one of multiple preset force magnitude ranges. Forexample, for an input on a region of the touch sensor surface 112corresponding to a delete key, the controller 150 can output a commandto delete a single symbol, to delete a whole word, to delete a wholesentence, and to delete a whole paragraph based on the magnitude of anapplied force that falls into one of four preset and increasing forcemagnitude ranges.

The controller 150 can implement these haptic effects responsive tomultiple discrete inputs applied to the touch sensor surface 112simultaneously or in rapid sequence. For example, when a user placesmultiple fingers in contact with the touch sensor surface 112, thecontroller 150 can trigger a click cycle in response to detection ofeach finger on the touch sensor surface 112, such as within multipleclick cycles overlapping based on times that magnitudes of forcesapplied by each of these fingers exceed a common threshold magnitude (orexceed threshold magnitudes assigned to corresponding regions of thetouch sensor surface 112). The controller 150 can implement theforegoing methods and techniques responsive to various force (orpressure) magnitude transitions by each of the user's fingers, such asincluding “down” click cycles, “up” click cycles, “deep” click cycles,multiple-level click cycles, etc. for each finger in contact with thetouch sensor surface 112.

5.3 Hysteresis

In another implementation, the controller 150 implements hysteresis totrigger multiple elements of a single click cycle. For example, thecontroller 150 can trigger a “down” click cycle, as described above, inresponse to a detected force on the touch sensor surface 112 thatexceeds four ounces and can trigger an “up” click cycle (e.g., a shorterand higher-frequency variant of the down click cycle) when a detectedforce applied to the touch sensor surface 112 by the same object dropsbelow two ounces. In this example, the controller 150 can execute a“down” click cycle in which the vibrator 120 is driven at greateramplitude and the speaker outputs a lower-frequency sound than for an“up” click cycle in order to simulate a physical button in which greaterapplied downward force is required to depress the button downward but inwhich a finger or other object in contact with the button dampens thesound of the button depressing, thereby yielding a lower-pitch “snapdown” feel than when the physical button is released. In thisimplementation, the controller 150 can implement similar methods andtechniques to trigger the speaker: to replay a “down” audio trackcontaining a primary tone of first frequency when an input detected onthe touch sensor surface 112 exhibits an applied force exceeding a highthreshold force (e.g., four ounces); and to replay an “up” audio trackcontaining a primary tone of second frequency less than the firstfrequency when the same input on the touch sensor surface 112 exhibitsan applied force that later drops below the low threshold force (e.g.,two ounces). The controller 150 can thus vary haptic and tactile outputsof the system 100 based on force magnitudes of inputs on the touchsensor surface 112 and a current or last state of the system 100.

The controller 150 can additionally or alternatively implementper-finger haptic effects. For example, when a user places multiplefingers in contact with the touch sensor surface 112, the controller 150can trigger a click cycle in response to detection of each finger on thetouch sensor surface 112 and in response to various input transitionsperformed by the user's fingers, such as including “down” click cycles,“up” click cycles, “deep” click cycles, multiple-level click cycles,etc. for each finger in contact with the touch sensor surface 112. Asdescribed below, the controller 150 can selectively trigger a particularvibrator 120 nearest the location of an input once the input is detectedor once an input transition at the location is detected.

The system 100 can therefore detect inputs of different force magnitudeson the touch sensor surface 112, assign an input type to an input basedon its magnitude, serve different haptic feedback through the vibrator120 and speaker based on an input's assigned type, and output differentcontrol functions based on an input's assigned type.

In one variation shown in FIG. 10A, the controller 150 implementshysteresis to trigger multiple click cycles during application andretraction of a single force input on the touch sensor surface 112. Inparticular, in this variation, the controller 150 selectively activatesthe vibrator 120 and the speaker when a force is both applied to thetouch sensor surface 112 and when the force is released from the touchsensor surface 112 in order to tactilely and audibly replicate the feeland sound of a mechanical button being depressed and, later, released.To prevent “bouncing” when application of a force on the touch sensorsurface 112 reaches a first threshold magnitude, the controller 150 canexecute a single “down” click cycle—suggestive of depression of amechanical button—for this input until the input is released from thetouch sensor surface 112. However, the controller 150 can also executean “up” click cycle—suggestive of release of a depressed mechanicalbutton—as a force applied by the same input decreases to a second, lowerthreshold magnitude. Therefore, the controller 150 can implementhysteresis techniques to prevent “bouncing” in haptic responses to theinputs on the touch sensor surface 112, to indicate to a user that aforce applied to the touch sensor surface 112 has been registered (i.e.,has reached a first threshold magnitude) through haptic feedback, and toindicate to the user that the user's selection has been cleared andforce applied to the touch sensor surface 112 has been registered (i.e.,the applied force has dropped below a second threshold magnitude)through additional haptic feedback.

For example, the controller 150 can: trigger a “down” click cycle inresponse to detecting application of an input—on the touch sensorsurface 112—of force magnitude that exceeds 120 grams; and can triggeran “up” click cycle (e.g., a shorter and higher-frequency variant of thedown click cycle) as the input is released from the touch sensor surface112 and the applied force on the touch sensor surface 112 from thisinput drops below 60 grams. In this example, the controller 150 canexecute a “down” click cycle in which the vibrator 120 is driven atgreater amplitude and/or greater frequency and in which the speakeroutputs a lower-frequency sound than for an “up” click cycle. Forexample, the system 100 can execute the down-click cycle by driving thevibrator 120 at a first oscillation frequency and triggering the audiodriver 140 to output a click sound at a first audio frequency; andexecute the up-click cycle by driving the first vibrator 120 at anoscillation frequency greater than the first oscillation frequency inBlock S132 and triggering the audio driver 140 to output the click soundat the second audio frequency greater than the first audio frequency inBlock S133. Generally, in this example, the controller 150 can definethe frequency of the “down” click to be proportional to the forcemagnitude of the input, such that inputs of greater force magnitudecorrespond with higher pitch audio signals and/or higher frequencyvibration. Similarly, the controller 150 can define the duration of the“down” click to be proportional to the force magnitude of the input,such that inputs of greater force magnitude correspond with longer audiosignals and/or longer vibration duration. Therefore, the controller 150can execute a “down” click cycle that tactilely and audibly replicatesdepression of a mechanical button, which may require application of aforce exceeding a transition force; and the controller 150 can executean “up” click cycle that tactilely and audibly replicates release of themechanical button, which may return to its original position only oncethe applied force on the mechanical button drops significantly below thetransition force. Furthermore, contact between a mechanical button and afinger depressing the mechanical button may dampen both the sound andthe rate of return of a depressed mechanical button, thereby yielding afaster and lower-pitch “snap down” feel and sound than when the physicalbutton is released. The controller 150 can thus mimic the feel and soundof a mechanical button when depressed by executing a “down” click cycle;the controller 150 can mimic the feel and sound of a depressedmechanical button when released by executing an “up” click cycleresponsive to changes in force applied by an object in contact with thetouch sensor surface 112 over a period of time.

6. Vibrator Pairs

In one variation, the system 100 includes a set of vibrator 120 pairscoupled to the substrate 114, wherein each vibrator 120 in a pair ofactuators is configured to execute a discrete element (or portion) of aclick cycle.

In one implementation, in which the system 100 executes a “down” clickcycle when the force magnitude of an input on the touch sensor surface112 exceeds a high force magnitude (e.g., four ounces) and then executesan “up” click cycle when the force magnitude of the input drops below alow force magnitude (e.g., two ounces), as described above, the system100 includes one or more vibration pairs, wherein each vibration pairincludes a depress vibrator 120 and a release vibrator 120. In thisimplementation, the depress vibrator 120 can exhibit a first resonantfrequency, and the release vibrator 120 can exhibit a second resonantfrequency less than the first resonant frequency. For example, thedepress vibrator 120 can include an eccentric mass smaller than theeccentric mass in the release vibrator 120 and/or exhibit a shorterthrow than the release vibrator 120 such that the first vibrator 120exhibits a higher resonant frequency than the release vibrator 120. Thecontroller 150 can thus sequentially trigger the depress vibrator 120 toexecute a down click cycle when an input is first detected by the touchsensor 110 and then trigger the release vibrator 120 to execute an upclick cycle as the input is released from the touch sensor surface 112in order to mimic a feel of a depression and release of a mechanicalsnap button, which may “feel” relatively stiffer upon depression thanupon release to a human user. Furthermore, in this implementation, thedepress and release vibrators can be packaged together into a singleunit, such as with their linear oscillation paths parallel and offset.

For example, the system 100 can include a first vibrator 120 and asecond vibrator 120 both coupled to the touch sensor 110 and configuredto vibrate the touch sensor surface 112. Additionally, the system 100can include a first audio driver 140 and a second audio driver 140coupled to the touch sensor 110 and configured to output an audio signalin response to inputs exceeding a second threshold magnitude. In thisexample, the controller 150 is configured to: selectively drive thefirst vibrator 120 to oscillate the touch sensor surface 112 proximalthe first input at approximately the first time in response to detectingapplication of the first input a first distance from the first vibrator120 and a second distance from the second vibrator 120, the seconddistance exceeding the first distance, the first force magnitude of thefirst input exceeding the threshold magnitude. Therefore, the controller150 can actuate the first vibrator 120 exclusively when the controller150 detects inputs on the touch sensor surface 112 closer to the firstvibrator 120 than the second vibrator 120. Similarly, the controller 150is configured to selectively trigger the audio driver 140 to output afirst audio signal proximal the first input at approximately the firsttime in response to detecting application of the first input a firstdistance from the first vibrator 120 and a second distance from thesecond vibrator 120, the second distance exceeding the first distance.Therefore, the controller 150 can actuate the first audio driver 140exclusively when the controller 150 detects inputs on the touch sensorsurface 112 closer to the first audio driver 140 than the second audiodriver 1400. Alternatively, the controller 150 can selectively drive thesecond vibrator 120 to oscillate the touch sensor surface 112 proximalthe first input at approximately the first time and/or selectivelytrigger the second audio driver 140 to output a second audio signalproximal the first input at approximately the first time in response todetecting application of the first input a distance from the firstvibrator 120 greater than a distance from the second vibrator 120.Therefore, the controller 150 can selectively actuate the second audiodriver 140 and/or the second vibrator 120 exclusively when thecontroller 150 detects inputs on the touch sensor surface 112 closer tothe second audio driver 140 and the second vibrator 120 than the firstaudio driver 140 and the first vibrator 120, respectively. However, thecontroller 150 can also drive the first vibrator 120 to oscillate thetouch sensor surface 112 at a first frequency at approximately the firsttime; and drive the second vibrator 120 to oscillate the touch sensorsurface 112 at a second frequency at approximately the first time inresponse to detecting application of the first input a distance from thefirst vibrator 120 and the (equal) distance from the second vibrator120. Similarly, the controller 150 can trigger both the first audiodriver 140 and the second audio driver 140 to output audio signals atapproximately the first time. Therefore, the controller 150 can drivemultiple vibrators and/or audio drivers 140 at approximately the sametime when an input is equidistant and/or within a threshold offset fromeach vibrator 120 and/or audio driver 140.

Similarly, the system 100 can include vibrator 120 clusters, whereineach vibrator 120 cluster contains multiple vibrators, each vibrator 120configured to execute one of various click cycle types. For example, inthe implementation described above in which the controller 150 triggersvibrators to execute up, down, and deep click cycles, a vibrator 120cluster can include: a depress vibrator 120 dedicated to executing downclick cycles; a release vibrator 120 dedicated to executing up clickcycles; and a deep depress vibrator 120 dedicated to executing deeppress click cycles. In this example, the controller 150 can selectivelytrigger each of the depress, release, and deep depress vibrators toexecute corresponding click cycles based on the force magnitude of adetected input on the touch sensor surface 112. Alternatively, eachvibrator 120 cluster can include two or more vibrators, including aprimary vibrator 120 and a secondary vibrator 120, and the controller150 can trigger the primary vibrator 120 to execute each subsequentclick cycle unless a click cycle is currently in process at the primaryvibrator 120 or unless less than a threshold period of time has passedsince the primary vibrator 120 completed a last click cycle, in whichcase the controller 150 triggers the secondary vibrator 120 to execute anext click cycle. Similarly, in these implementations, vibrators in avibrator 120 cluster can be packaged together in a single package andmounted in-unit to the substrate 114.

However, the system 100 can include a vibrator 120 pair or vibrator 120cluster containing any other number of like or dissimilar vibratorsconfigured to execute click cycles of a particular type or of multipleunique types.

7. Housing

The housing 160 functions to contain and support elements of the system100, such as the controller 150, the vibrator 120, the speaker, and thesense and drive electrodes of the touch sensor 110, as shown in FIGS. 1and 2. As described above, the housing 160 can also define a set of feet(or “pads”) that function to support the bottom of the housing 160 overa planar surface on which the system 100 is set upright. In thisimplementation, each foot can include a compressible or othervibration-damping material that functions to mechanically isolate thesystem 100 from the adjacent surface, thereby reducing rattle andsubstantially preserving vibration of the system 100 during a clickcycle.

7.1 Coupler

The coupler 132 is configured to mount the substrate 114 to a chassis130 of a computing device and to permit movement of the substrate 114within a vibration plane parallel to a broad planar face of thesubstrate 114. Generally, the coupler 132 constrains the substrate 114against the chassis 130 of a computing device (e.g., a laptop computer)but permits the substrate 114, the vibrator 120, and the resistive layer124 to oscillate within a plane substantially parallel to the touchsensor surface 112 during a click cycle.

In one example in which the vibrator 120 oscillates a mass linearlyalong an X-axis of the system 100 perpendicular to the Z-axis andparallel to the vibration plane, the coupler 132 can (approximately)constrain the substrate 114 in five degrees of freedom, includingrotation about any axis and translation along both the Y- and Z-axes ofthe system 100, and the coupler 132 can permit the substrate 114 totranslate (substantially) only along the X-axis of the system 100 whenthe vibrator 120 is actuated during a click cycle. In another example inwhich the vibrator 120 includes an eccentric mass coupled to the outputshaft of a rotary actuator and in which the output shaft of the rotatoryactuator is normal to the touch sensor surface 112 (i.e., parallel to aZ axis of the system 10), the coupler 132 can (approximately) constrainthe substrate 114 in four degrees of freedom, including rotation aboutany axis and translation along the Z axis, and the coupler 132 canpermit the substrate 114 to translate along X and Y axes of the system100 (i.e., in a plane parallel to the touch sensor surface 112) when thevibrator 120 is actuated during a click cycle.

In one implementation, the chassis 130 of the computing device defines areceptacle (e.g., a cavity) configured to receive the system 100, andthe coupler 132 functions to locate the substrate 114 and the resistivelayer 124 within the receptacle. The chassis 130 of the computing devicecan also define an overhang that extends over and into a receptacle toform an undercut around the cavity, and the coupler 132 can mount thesubstrate 114 to the underside of the overhang, such as via one or moremechanical fasteners, grommets 185, or an adhesive.

In one variation, the touch sensor 110 includes a touch sensor surface112 that extends across the back side of the substrate 114 and thatfunctions to support the substrate 114 against deflection out of thevibration plane, such as due to a downward force applied to the touchsensor surface 112. In this variation, the touch sensor surface 112 caninclude a fiberglass plate, a metal (e.g., aluminum) plate, afiber-filled polymer plate, or a plate of any other material and can bebonded to the substrate 114 or fastened to the substrate 114, such aswith a mechanical fastener 167 or grommet 185, and the touch sensorsurface 112 can be coupled or fastened to the computing device chassis130 to mount the substrate 114 and resistive layer 124 within thereceptacle.

Alternatively, the substrate 114 can be of a rigid material and/or of athickness such that the substrate 114 is sufficiently rigid to resistsubstantial deformation out of the vibration plane when a typical loadis applied to the touch sensor surface 112. For example, the substrate114 can include a 3 mm-thick fiberglass or carbon fiber PCB. Thesubstrate 114 can additionally or alternatively include one or moresteel, copper, or aluminum ribs soldered or riveted to the back side ofthe substrate 114 and spanning the length and/or width of the substrate114 to improve rigidity of the substrate 114. The substrate 114 can thusbe of a material and geometry and/or can include additionalstrengthening elements to increase the rigidity of the substrate 114 inthe vibration plane but without adding substantial mass to the substrate114 and resistive layer 124 assembly: in order to improve theresponsiveness of the system 100 due to reduced absorption of vibrationby the rigid substrate 114; and in order to increase the displacement ofthe substrate 114 and resistive layer 124 assembly per stroke of thevibrator 120 during a click cycle.

7.2 Grommets

In one implementation, the coupler 132 mounts the substrate 114 (or thetouch sensor surface 112) to the computing device receptacle via elasticgrommets 185 (e.g., “vibration-damping snap-in unthreaded spacers”). Inone example shown in FIGS. 11D, 11E, 11F, and 11G the coupler 132includes one cylindrical grommet 185—including two necks—inserted into abore at each corner of the substrate 114 with the upper necks of thegrommets 185 engaging their corresponding bores in the substrate 114. Inthis example, for each grommet 185, the coupler 132 also includes arigid tab, such as a metal or fiberglass tab, including a first borethat engages the lower neck of the grommet 185 and a second borelaterally offset from the first bore and configured to mount to thecomputing device chassis 130 via a fastener 167, such as a screw, a nut,or a rivet. In this example, the rigid tabs can also be connected, suchas to form a rigid frame that encircles the perimeter of the substrate114 or in the form of a rigid plate that spans the back side of thesubstrate 114. In this example, each grommet 185 includes an enlargedsection between the upper and lower necks that vertically offsets thesubstrate 114 above the tabs (or above the rigid frame, above the rigidplate) and that permits the substrate 114 to move laterally relative tothe tabs (or relative to the rigid frame, relative to the rigid plate)while vertically supporting the substrate 114. In this example, eachgrommet 185 can be of silicone, rubber, or any other flexible or elasticmaterial and can be characterized by a durometer sufficient to permitlateral deflection of the grommets 185 due to oscillation of thevibrator 120 during a click cycle but to limit compression of thegrommets 185 under typical loads, such as when one or two human handsare rested on the touch sensor surface 112 and/or when two hands enterkeystrokes (e.g., “type”) across the touch sensor surface 112.

In another example shown in FIG. 11F, the coupler 132 includes onecylindrical grommet 185—including a single neck—inserted into a bore ateach corner of the substrate 114. In this example, the coupler 132 alsoincludes one rigid tab per grommet 185 or a rigid frame or rigid platethat spans the substrate 114. The tabs, frame, or plate are installedbehind the substrate 114 to constrain the grommets 185 verticallyagainst the computing device chassis 130. During a click cycle, thegrommets 185 can thus bend or flex to enable the substrate 114 to movewithin the vibration plane as the vibrator 120 is actuated. Thecomputing device chassis 130 and/or the tabs, frame, or plate can alsoinclude grommet 185 recesses configured to receive ends of the grommets185 and to locate the grommets 185 laterally and longitudinally withinthe computing device receptacle. Each grommet 185 recess can define acylindrical recess oversized for the cylindrical grommets 185 to enablethe grommets 185 to move both laterally and longitudinally, therebyenabling the substrate 114 to move both laterally and longitudinallywithin the vibration plane during a click cycle. Similarly, each grommet185 recess can define an elongated (or “lozenge”) recess that enablesthe grommets 185 to move only laterally (or only longitudinally) withinthe grommet 185 recesses, thereby enabling the substrate 114 to movelaterally (or longitudinally) within the vibration plane during a clickcycle.

In this implementation, a grommet 185 can thus define a solid flexiblebody. Alternatively, a grommet 185 can include a rigid or elastic bodyand a flexure 186 arranged inside (or outside) of the body. In thisimplementation, the grommet 185 can couple the substrate 114 (or touchsensor surface 112) to the computing device chassis 130, and the flexure186 can be configured to move relative to the body to enable thesubstrate 114 to shift laterally and/or longitudinally relative to thechassis 130. Alternatively, the system 100 can include one or morefluid-filled and/or ribbed grommets 185 that permit greater compressionand compliance. For example, the grommet 185 can include a set ofinternal radial ribs that permit greater deflection in the vibrationplane than out of the vibration plane.

Therefore, in this implementation: the vibrator 120 can be coupled tothe touch sensor surface 112 of the touch sensor 110 (e.g., proximal acenter of the touch sensor 110) and can include a linear actuatorconfigured to oscillate the mass along a vector parallel to the touchsensor surface 112 and parallel to an edge of the touch sensor 110; andthe coupler 132 can include a grommet 185 extending from the chassis 130of the mobile computing device and passing through a mounting bore inthe touch sensor surface 112, configured to vertically constrain thetouch sensor surface 112 relative to the chassis 130, and exhibitingelasticity in a direction parallel to the touch sensor surface 112.However, in this implementation, the coupler 132 can include any othernumber of grommets 185 in any other configuration. For example, thecoupler 132 can include: three grommets 185 in a triangularconfiguration; four grommets 185 in a square configuration with onegrommet 185 in each corner of the substrate 114 or touch sensor surface112; or six grommets 185 with one grommet 185 in each corner of thesubstrate 114 (or in the touch sensor surface 112) and one grommet 185centered along each long side of the substrate 114 (or along each longside of the touch sensor surface 112). The system 100 can thus define acomplete human-computer interface subsystem that can be installed in acomputing device receptacle with a limited number of fasteners or withan adhesive.

7.3 Isolators

In another implementation shown in FIG. 11A, the coupler 132 includeselastic isolators 166 bonded to the back side of the substrate 114 (orto the back side of the touch sensor surface 112) and to a surfacewithin the computing device receptacle. In one example, the coupler 132includes a set of (e.g., four) silicone buttons bonded to the back sideof the touch sensor surface 112 on one side and bonded to the bottom ofthe computing device receptacle. In this example, the silicone buttonscan be in compression when a force is applied to the touch sensorsurface 112; the silicone buttons can therefore define a geometry and amodulus of elasticity sufficient to substantially resist compressionwhen a force is applied to the touch sensor surface 112 but to alsoenable the substrate 114 to translate in the vibration plane during aclick cycle. Alternatively, in this implementation, the coupler 132 caninclude elastic isolators bonded to the top of the substrate 114 (or tothe top of the touch sensor surface 112) and bonded to the underside ofthe top of the C-side of the computing device extending into thecomputing device receptacle, and the elastic isolators can suspend thesubstrate 114 within the receptacle. In one example described below, theisolator 166 can couple to the touch sensor surface 112 between a firstregion and a second region of a split keyboard and can be configured tolimit communication of vibration between the first region and the secondregion of the touch sensor surface 112.

7.4 Bearings

In yet another implementation shown in FIG. 11B, the coupler 132 mountsthe substrate 114 (or the touch sensor surface 112) to the computingdevice chassis 130 via a set of bearings. In one example, the computingdevice receptacle can include multiple bearing receivers, the substrate114 can include one bearing surface 181 vertically aligned with eachbearing receiver 182 and arranged across the back side of the substrate114 opposite the touch sensor surface 112, and the coupler 132 caninclude one ball bearing 183 arranged in each bearing receiver 182 andconfigured to vertically support the substrate 114 at correspondingbearing surfaces on the back side of the substrate 114.

In another example, the computing device receptacle defines 24 bearingreceivers arranged in a 3×8 grid array spaced along the back side of thesubstrate 114, and the coupler 132 includes one ball bearing 183arranged in each bearing receiver 182. In this example, the bearings cansupport the substrate 114 (or the touch sensor surface 112) with alimited maximum span between adjacent bearings in order to limit localdeflection of the substrate 114 when a load (of a typical magnitude) isapplied to the touch sensor surface 112. The coupler 132 can thusinclude multiple bearings that function as a thrust bearing tovertically support the substrate 114. However, in this implementation,the computing device can include any other number of bearings arrangedin any other way.

In this implementation, each bearing receiver 182 can define ahemispherical cup that constrains a ball bearing 183 in translation, andthe substrate 114 can include steel or polymer planar bearing surfacessoldered, adhered, or otherwise mounted to the back side of thesubstrate 114 (or the back side of the touch sensor surface 112) andconfigured to mate with an adjacent ball bearing 183 at a point ofcontact, as shown in FIG. 11H. Alternatively, each bearing surface 181mounted to the substrate 114 (or on the touch sensor surface 112) candefine a linear track (e.g., a V-groove), wherein all linear tracks inthe set of bearing surfaces are parallel such that the substrate 114 cantranslate in a single direction parallel to the linear tracks and in thevibration plane during a click cycle (or vice versa), as shown in FIG.11B. The bearing receivers and bearing surfaces can also define similarand parallel linear tracks that constrain the substrate 114 to translatealong a single axis, or the bearing receivers and bearing surfaces candefine similar but perpendicular linear tracks that enable the substrate114 to translate along two axes in the vibration plate. Furthermore,each bearing receiver 182 can be packed with a wet or dry lubricant(e.g., graphite).

In this implementation, the coupler 132 can alternatively include one ormore linear bearing or linear slides that similarly constrain thesubstrate 114 to linear translation along only one or two axes.

Furthermore, the coupler 132 can incorporate one or more bearings withany of the foregoing implementations to provide additional support tothe substrate 114 (or to the touch sensor surface 112). For example, ifthe substrate 114 is arranged in a receptacle spanning a large widthand/or large length relative to the thickness and rigidity (e.g.,modulus of elasticity) of the substrate 114 (or of the touch sensorsurface 112): the computing device receptacle can include one or morebearing receivers; the substrate 114 can include one bearing surface 181aligned with each bearing receiver 182 in the computing devicereceptacle on the back side of the substrate 114 opposite the resistivelayer 124; and the coupler 132 can include four spring clips 184suspending each of the four corners of the substrate 114 from thechassis 130 and one ball bearing 183 arranged in each bearing receiver182 and configured to vertically support the substrate 114 atcorresponding bearing surfaces on the back side of the substrate 114.

8. Keyboard

In one implementation shown in FIG. 6, the system 100 defines arectangular keyboard, includes multiple vibrators (or vibrator 120pairs, vibrator 120 clusters) mounted to opposite ends of the substrate114, and is mounted to the chassis 130 of a computing device (e.g., alaptop) by flexible grommets 185, a flexure 186, a linear bearing, orother element or features that enable the substrate 114 to vibratewithin a vibration plane substantially parallel to the touch sensorsurface 112, such as to oscillate along an X-axis, to oscillate along aY-axis, and to rotate about a Z-axis of the substrate 114.

8.1 Unitary Keyboard Structure

In one implementation, the system 100 includes: a left vibrator 120mounted on a region of the substrate 114 adjacent the lower-left cornerof the keyboard; and a right vibrator 120 mounted on a region of thesubstrate 114 adjacent the lower-right corner of the keyboard, whereinboth the left and right vibrators oscillate their internal eccentricmasses parallel to the vibration plane. In the implementation describedabove in which each vibrator 120 oscillates its eccentric mass along aone-dimensional linear oscillation path, the left and right vibratorscan be arranged on the substrate 114 with their oscillation pathsparallel to the Y-axis of the substrate 114 (e.g., parallel to the shortedges of the substrate 114), as shown in FIGS. 1, 2, and 6. When aninput is detected on the touch sensor surface 112, the controller 150selectively triggers the vibrator 120 nearest the input to execute aclick cycle. In particular, when an input—exceeding a minimum thresholdtotal or peak force—is detected on the right half of the touch sensorsurface 112, the controller 150 triggers the right vibrator 120 toexecute a click cycle, which locally oscillates right the sidesubstantially parallel to the Y-axis of the substrate 114 and causes thesubstrate 114 to oscillate globally about the left side of the substrate114, such as about a flexure 186 or about two elastic grommets 185supporting the left side of the substrate 114 on the chassis 130 of theconnected computing device. In particular, when the right vibrator 120is actuated during a click cycle, the right vibrator 120 can oscillatethe right side of the substrate 114 at a greater magnitude than the leftside of the substrate 114—thereby rotating the substrate 114 about theleft side of the substrate 114 and in the vibration plane, as shown inFIG. 2—such that a user resting fingers on the right and left sides ofthe touch sensor surface 112 tactilely may perceive a stronger response(e.g., a stronger “click”) with a finger in contact with the right sideof the touch sensor surface 112 than with a finger in contact with theleft side of the touch sensor surface 112. The controller 150 cansimilarly trigger the left vibrator 120 to execute a click cycle when aninput of sufficient force magnitude is detected on the left side of thetouch sensor surface 112. The left and right vibrators can therefore becoupled to the substrate 114 with their linear oscillation pathssubstantially parallel to the short sides of the substrate 114 in orderto leverage the aspect ratio of the keyboard and such that actuation ofone of the left and right vibrators induces oscillation preferentiallyon the left or right side of the substrate 114, respectively.

The system 100 can further include a center vibrator 120 coupled to thesubstrate 114 under the approximate center of the touch sensor surface112, as shown in FIG. 6; and the controller 150 can selectively triggerthe center vibrator 120 to execute a click cycle in response to a touchinput—of sufficient force magnitude—proximal the center of the touchsensor surface 112. The controller 150 can thus define three discrete,non-overlapping zones across the touch sensor surface 112—including aleft zone, a right zone, and a center zone—and selectively trigger theleft, right, and center vibrators to execute click cycles in response toinputs within these regions, respectively. Alternatively, the controller150 can trigger the left and center vibrators or the right and centervibrators in combination based on the proximity of a detected input tothe left, right, and center vibrators in order to achieve a greatestoscillation amplitude near the location of the input that triggered theclick cycle. For example, the controller 150 can: define eleven discretecolumn regions from the left side of the touch sensor surface 112 to theright side of the touch sensor surface 112; trigger the left vibrator120 to execute a click cycle at 100% power (e.g., 100% amplitude) inresponse to a touch input on the first (i.e., leftmost) column region;trigger the left vibrator 120 to execute a click cycle at 80% power andtrigger the center vibrator 120 to execute a click cycle at 20% power inresponse to a touch input on a second column region; trigger the leftvibrator 120 to execute a click cycle at 60% power and trigger thecenter vibrator 120 to execute a click cycle at 40% power in response toa touch input on a third column region. The controller 150 can thentrigger the center vibrator 120 to execute a click cycle at 100% powerin response to a touch input on the sixth (i.e., center) column region;trigger the right vibrator 120 to execute a click cycle at 20% power andtrigger the center vibrator 120 to execute a click cycle at 80% power inresponse to a touch input on a seventh column region; and trigger theright vibrator 120 to execute a click cycle at 100% power in response toa touch input on the eleventh (e.g., rightmost) column region. Inanother example, the controller 150 can assign a left vibrator 120 powerlevel, a combination of left and center vibrator 120 power levels, acombination of right and center vibrator 120 power levels, or a rightvibrator 120 power level to each discrete key region defined across thetouch sensor surface 112 based on a distance from the centroid of thekey region to each of the left, right, and center vibrators and triggerthe left, right, and center vibrators to execute click cycles at thesepower levels assigned to discrete key regions depressed by a user.

In the foregoing implementation, the center vibrator 120 can be arrangedon the substrate 114 with its linear oscillation paths parallel to theX-axis of the substrate 114 (e.g., substantially perpendicular to thelinear oscillation paths of the left and right vibrators). During aclick cycle, the left and right actuators can therefore oscillate theleft and right sides of the substrate 114 substantially parallel to theY-axis of the substrate 114, respectively, and the center vibrator 120can oscillate the substrate 114 substantially parallel to the X-axis ofthe substrate 114. Because a flexure 186, elastic grommet 185, or otherstructure coupling the substrate 114 to the chassis 130 of a computingdevice is more compliant to rotation about the Z-axis of the substrate114 than to linear movement along the X-axis of the substrate 114, thecenter vibrator 120 can be larger (e.g., include a large eccentric massand/or larger actuator) than the left and right actuators in order toachieve similar local oscillation magnitudes when the left, right, andcenter vibrators execute click cycles.

8.2 Split Keyboard

In one variation shown in FIG. 3, the system 100 includes two (or more)discrete touch sensor 110 s, each with one or more vibrators (orvibrator 120 pairs or vibrator 120 clusters, as described below) thatcooperate to define a full keyboard. In one implementation, the system100 includes: a left touch sensor 110, a left vibrator 120 coupled to aleft substrate 114 of the left touch sensor 110, a left resistive layer124 arranged over the left substrate 114, and a left overlay 164arranged over the left resistive layer 124 and defining a left touchsensor surface 112 across a left half of a keyboard; and a right touchsensor 110 separate from the left touch sensor 110, a right vibrator 120coupled to a right substrate 114 of the right touch sensor 110, a rightresistive layer 124 arranged over the right substrate 114 and separatefrom the left resistive layer 124, and a right overlay 164 arranged overthe right resistive layer 124, separate from the left overlay 164, anddefining a right touch sensor surface 112 across a right half of thekeyboard. The left and right touch sensor 110 s can thus be constructedon separate (i.e., distinct) substrates 114 that are separatelyconnected to a common chassis 130 of a computing device, the leftvibrator 120 can oscillate the left touch sensor 110 separately from theright touch sensor 110, and the right vibrator 120 can oscillate theright touch sensor 110 separately from the left touch sensor 110.

In this variation, the controller 150 can selectively trigger the leftvibrator 120 to execute a click cycle when a touch input of sufficientmagnitude is detected by the left touch sensor 110 to vibrate the leftsubstrate 114, and the controller 150 can trigger the right vibrator 120to execute a click cycle when a touch input of sufficient magnitude isdetected by the right touch sensor 110 to vibrate the right substrate114. Thus, a flexure 186, elastic grommet 185 or other structure thatcouples the left touch sensor 110 to the chassis 130 of the computingdevice can substantially isolate the vibration of the left touch sensor110 from the right touch sensor 110 (and vice versa) such that a usercontacting the left touch surface with fingers on his left hand andcontacting the right touch surface with fingers on his right hand mayperceive a haptic response with his left fingers but not with his rightfingers when depressing the left touch sensor 110.

In this variation, each of the left and right touch sensor 110 s candefine a rectangular section, a trapezoidal section, a polygonalsection, or a skewed or stepped area spanning a subset (e.g., one half)of a keyboard area. The left and right touch sensor 110 s can also beseparately mounted to the computing device chassis 130, and the system100 can include a single vibrator 120 coupled to each of the left andright substrates 114. Alternately, the system 100 can include multiplevibrators coupled to each of the left and right substrates 114, and thecontroller 150 can selectively trigger vibrators coupled to the lefttouch sensor 110 based on the location of an input on the left touchsensor 110—such as according to methods and techniques describedabove—in order to maximize oscillation of the left touch sensor 110 snear the location of the input with greater granularity. The controller150 can similarly selectively trigger vibrators coupled to the righttouch sensor 110 based on the location of a second input on the righttouch sensor 110 in order to maximize oscillation of the right touchsensor 110 s near the location of the second input.

Furthermore, in this variation, the system 100 can include one discreteoverlay 164 per touch sensor 110. Alternatively, the system 100 caninclude one overlay 164 that spans both touch sensor 110 s, such as ifthe overlay 164 is of a relatively elastic material or includes anelastic section spanning a gap between the left and right touch sensor110 s in order to limit mechanical communication of vibrations betweenthe left and right touch sensor 110 s.

For example, the touch sensor 110 can define: a first region of thetouch sensor surface 112 corresponding to a first subset of keys of thekeyboard (e.g., a left half of the keyboard); and a second region of thetouch sensor surface 112 adjacent the first region and corresponding toa second subset of keys of the keyboard (e.g., a right half of thekeyboard). In this example, a first vibrator 120 can be configured tooscillate the first region of the touch sensor surface 112 in isolation(i.e., without moving the second region of the touch sensor surface 112)while a second vibrator 120 can be coupled to the touch sensor 110 andconfigured to oscillate the second region of the touch sensor surface112 in isolation. To limit communication of vibration between the firstregion and the second region, the system 100 can include an isolator 166(e.g., elastic divider and/or gap interposed between the first regionand the second region), as described above, coupled to the touch sensorsurface 112 between the first region and the second region andconfigured to limit communication of vibration between the first regionand the second region of the touch sensor surface 112. In this example,the controller 150 is configured to: execute a first down-click cycle inresponse to the first force magnitude exceeding the first thresholdmagnitude by driving the first vibrator 120 to oscillate the firstregion of the touch sensor surface 112 in Block S120; and map the firstlocation of the first input on the touch sensor surface 112 to a key inthe first subset of keys of the keyboard in response to detectingapplication of the first input onto the touch sensor surface 112 withinthe first region of the touch sensor surface 112. Alternatively, thecontroller 150 can, in response to detecting application of the firstinput onto the touch sensor surface 112 within the second region of thetouch sensor surface 112: execute a second down-click cycle in responseto the first force magnitude exceeding a second threshold magnitude bydriving the second vibrator 120 to oscillate the second region of thetouch sensor surface 112, the second threshold magnitude distinct fromthe first force magnitude in Block S120; and map the first location ofthe first input on the touch sensor surface 112 to a key in the secondsubset of keys of the keyboard. Therefore, the system 100 canselectively vibrate the first region and/or the second region inresponse to detecting inputs in each corresponding region.

Furthermore, in the foregoing example, the controller 150 can detectapplication of a second input onto the touch sensor surface 112 and asecond force magnitude of the second input at approximately the firsttime based on a second change in resistance between a second senseelectrode and drive electrode pair 116 in the touch sensor 110. Inresponse to detecting application of the first input onto the touchsensor surface 112 within the first region at approximately the firsttime and detecting application of the second input onto the touch sensorsurface 112 within the first region of the touch sensor surface 112 atapproximately the first time, the controller 150 can execute a thirddown-click cycle in response to the first force magnitude exceeding thefirst threshold magnitude by driving the first vibrator 120 to oscillatethe first region proximal the first input at a first frequency. At theapproximately same time, the controller 150 can execute a fourthdown-click cycle in response to the first force magnitude exceeding asecond threshold magnitude by driving the second vibrator 120 tooscillate the second region of the touch sensor surface 112 at a secondfrequency distinct from the first frequency.

However, in this variation, the system 100 can include any other numberof touch sensor 110 s arranged in any other way, including any othernumber of vibrators, and cooperating to span a full keyboard area.

8.3 Keyboard Surface and Overlay

The touch sensor surface 112 can define a keyboard region and canfurther include key designators (e.g., alphanumeric characters,punctuation characters) printed onto or otherwise applied to or formedinto discrete key regions across the keyboard region of the touch sensorsurface 112, such as a white ink screen-printed across the touch sensorsurface 112. The system 100 can additionally or alternatively includekey designators and/or region designators embossed or debossed acrossthe touch sensor surface 112 to enable a user to tactilely discriminatebetween various regions across the touch sensor surface 112.

Alternatively, the system 100 can include a keyboard overlay164—including visually- or mechanically-distinguished discrete keyregions—installed over the keyboard region of the touch sensor surface112 to define commands or inputs linked to various discrete inputregions within the keyboard region. In this implementation, the keyboardoverlay 164 can be transiently installed on (i.e., removable from) thekeyboard region of the touch sensor surface 112, such as to enable auser to exchange a first keyboard overlay 164 defining a QWERTY keyboardlayout with a second keyboard overlay 164 defining an AZERTY keyboardlayout. In this implementation, depression of a discrete key region ofan overlay 164 placed over the keyboard region of the touch sensorsurface 112 can locally compress the resistive layer 124, which canmodify the bulk resistance and/or the contact resistance of theresistive layer 124 on the drive and sense electrodes; and thecontroller 150 can register such change in bulk resistance and/orcontact resistance of the resistive layer 124 as an input, associate aparticular keystroke with this input based on the location of the input,output the keystroke to a processing unit within the connected orintegrated computing device, and trigger a click cycle. For example, thecontroller 150 can designate discrete key regions of a keyboard (e.g.,26 alphabetical key regions, 10 numeric key regions, and variouspunctuation and control keys) and can trigger a click cycle and output akeystroke command in response to a detected input on a correspondingdiscrete key region of the keyboard.

9. Soft Overlay

In the foregoing variation in which the system 100 includes an overlay164 arranged over the resistive layer 124 and defining the touch sensorsurface 112, the overlay 164 can define a layer of a relatively elastic(or “soft”) material that compresses along the Z-axis of the touchsensor 110 when depressed by a finger or other object. As a userdepresses a finger to the touch sensor surface 112, the overlay 164compresses toward the substrate 114, thereby yielding increasedmechanical coupling (or less damping) between the user's finger and thesubstrate 114 and greater communication of vibrations from the substrate114 into the user's finger during a click cycle executed by a vibrator120 nearby in response to detection of the input on the touch sensorsurface 112, as shown in FIG. 4. In this implementation, the modulus ofelasticity of the overlay 164 material can be selected or modified toachieve a minimum local compression (e.g., 50% compression) of theoverlay 164 in the Z-axis when an input applied to the touch sensorsurface 112 reaches a threshold peak or total force magnitude sufficientto trigger the controller 150 to actuate a vibrator 120 nearby. Forexample, the overlay 164 can include a closed-cell silicone foam sheet.In this example, the overlay 164 can: define a three-dimensionalkeyboard form defining a set of demarcated keys; be configured totransiently install over the touch sensor surface 112; and can comprisean elastic material configured to communicate a force applied to asurface of the three-dimensional keyboard form downward onto the touchsensor surface 112.

In one implementation, the overlay 164 includes a foam pad of uniformthickness (e.g., 0.025″) and uniform durometer (e.g., Shore 25) faced ona first side of a textile (e.g., fabric, leather) and mounted over thetouch sensor 110 on an opposing side. In this implementation, the touchsensor 110 can define a relatively rigid structure (e.g., Shore 80 orgreater), and the overlay 164 can define a relatively supple (e.g.,deformable, flexible, elastic, compressible) layer over the touch sensor110. The textile can thus define a control surface offset above thetouch sensor surface 112 by the foam pad, and the foam pad (and thetextile) can compress between a finger and the touch sensor surface 112as a user depresses the control surface with her finger. Because thetouch sensor 110 is configured to detect a range of magnitudes of forcesapplied to the touch sensor surface 112, the touch sensor 110 can detectsuch input. Also, though the foam pad may disperse the applied force ofthe user's finger over a greater contact area from the control surfaceto the touch sensor surface 112, the controller 150 can sum input forcescalculated at discrete sensor pixels across the touch sensor 110 tocalculate a total force applied to the control surface. The controller150 can also calculate the centroid of a contiguous cluster of discretesensor pixels that registered a change in applied force to determine theforce center of the input.

In the foregoing implementation, the control layer of the overlay 164can also include embossed regions, debossed regions, decals, etc. thatdefine tactile indicators of active regions of the touch sensor 110,inactive regions of the touch sensor 110, functions output by the system100 in response to inputs on such regions of the control surface, etc.

In another implementation, the overlay 164 includes a pad of varyingthickness faced on a first side in a textile and mounted over the touchsensor 110 on an opposing side. In one example, the pad includes a foamstructure of uniform durometer and defining a wedge profile that tapersfrom a thick section proximal the posterior end of the touch sensor 110to a thin section proximal the anterior end of the touch sensor 110. Inthis example, due to the varying thickness of the pad, the pad cancommunicate a force applied near the posterior end of the controlsurface into the touch sensor 110 onto a broader area than a forceapplied near the anterior end of the control surface; the system 100 canthus exhibit greater sensitivity to touch inputs applied to the controlsurface nearer the anterior end than the posterior end of the controlsurface. In another example, the pad similarly includes a foam structureor other compressible structure defining a wedge profile that tapersfrom a thick section proximal the posterior end of the touch sensor 110to a thin section proximal the anterior end of the touch sensor 110.However, in this example, the foam structure can exhibit increasingdurometer from its posterior end to its anterior end to compensate forthe varying thickness of the pad such that the system 100 exhibitssubstantially uniform sensitivity to touch inputs across the controlsurface.

However, the overlay 164 can define any other uniform thickness orvarying thickness over the touch sensor surface 112. For example, theoverlay 164 can define a domed or hemispherical profile over the(planar) touch sensor surface 112. The overlay 164 can also be facedwith any other textile or other material. The system 100 can thenimplement methods and techniques described above to detect inputs on thecontrol surface—translated onto the touch sensor surface 112 by theoverlay 164—and to output control functions according to these inputs.

Furthermore, because the compression of the overlay 164 by a user'sfinger increases mechanical coupling between the substrate 114 and thefinger (or decreases damping of vibrations communicated from thesubstrate 114 into the user's finger), the user may perceive greateractuation of the vibrator 120 at the finger currently depressed into theoverlay 164 than at other fingers only resting on or lightly depressingthe overlay 164 during a click cycle. In this variation, the system 100can therefore include a “soft” overlay 164—over the resistive layer124—that functions to selectively improve local mechanical couplingbetween the substrate 114 and a primary object (e.g., a finger)depressing the overlay 164 while also damping or limiting mechanicalcoupling between the substrate 114 and other objects only lightly incontact with the overlay 164, thereby increasing preferentialcommunication of vibration from the substrate 114 into the primaryobject during a click cycle.

However, the soft overlay 164 can be of any other material and canfunction in any other way to modify transmission of vibrations from thesubstrate 114 into objects in contact with the touch sensor surface 112.

10. Multiple Vibrators

In the foregoing implementation, the system 100 can include multiplespeakers and multiple vibrators and can selectively trigger click cyclesat the speakers and vibrators in response to inputs on the keyboardregion of the touch sensor surface 112. In one example in which thecontroller 150 triggers a motor driver to drive a vibrator 120 for atarget click duration of 250 milliseconds during a click cycle, thesystem 100 can include a vibrator 120 cluster containing three discretevibrators coupled to each half of the substrate 114 in order to enablethe system 100 to execute one complete click cycle on a correspondingside of the keyboard for each of 480 keystrokes per minute (i.e., 8 Hzkeystroke input rate). In this example, the system 100 can include: aleft vibrator 120 cluster arranged on the back side of the substrate 114under or adjacent the left side of the keyboard and a right vibrator 120cluster arranged on the back side of the substrate 114 under or adjacentthe right side of the keyboard; and the controller 150 can default totriggering a primary vibrator 120 in each of the left and right vibrator120 clusters to execute a click cycle in response to an input on acorresponding half of the keyboard region. However, if the primarycontroller 150 in the left vibrator 120 cluster is still completing aclick cycle when a next input on the left side of the keyboard region isdetected or if the primary vibrator 120 in the left vibrator 120 clustercompleted a click cycle less than a threshold pause time (e.g., 100milliseconds) from a current time upon receipt of a next input on theleft half of the keyboard region of the touch sensor surface 112, thecontroller 150 can trigger a secondary vibrator 120 in the left vibrator120 cluster to execute a click cycle in response to this next input onthe left half of the keyboard region. In this example, the controller150 can implement similar methods to trigger a tertiary vibrator 120 inthe left vibrator 120 cluster to execute a click cycle in response to anext input on the left half of the keyboard region if the primary andsecondary vibrators in the left vibrator 120 cluster are stillcompleting click cycles upon receipt of this next input. Alternatively,the controller 150 can sequentially actuate a first vibrator 120, asecond vibrator 120, and a third vibrator 120 in the left vibrator 120cluster as inputs are sequentially detected on the touch sensor surface112. The controller 150 can implement similar methods and techniques totrigger vibrators in the right vibrator 120 cluster to execute clickcycles based on inputs detected on the right half of the keyboardregion.

Yet alternatively, in this implementation, the system 100 can includediscrete vibrators distributed across the back surface of the substrate114, such as one vibrator 120 in each of three equi-width column regionson the back side of the substrate 114, and the controller 150 canselectively trigger a vibrator 120—nearest a detected input on the touchsensor surface 112 and not currently executing a click cycle—to executea click cycle in response to detection of this detected input.

For example, the system 100 can include a first vibrator 120 arrangedproximal a first edge of the touch sensor surface 112 and configured tooscillate the touch sensor surface 112 relative to a chassis 130 coupledto the touch sensor 110. In this example, the first vibrator 120 canvibrate the touch sensor surface with vibration originating proximal thefirst edge and translating the touch sensor surface 112 in a firstdirection parallel the touch sensor surface 112. Similarly, the system100 can include a second vibrator 120 coupled to the touch sensorsurface 112, arranged proximal a second edge of the touch sensor surface112 opposite the first edge, and configured to oscillate the touchsensor surface 112 relative to the chassis 130, vibration originatingproximal the second edge and translating the touch sensor surface 112 ina second direction orthogonal the first direction and parallel the touchsensor surface 112. The controller 150 can, in response to detectingapplication of the first input onto the touch sensor surface 112 at thefirst location of the touch sensor surface 112, the first forcemagnitude of the first input exceeding the first threshold magnitude:drive the first vibrator 120 to oscillate the touch sensor surface 112at approximately the first time in response to the first locationfalling a first distance from the first vibrator 120 and a seconddistance from the second vibrator 120 less than the first distance;and/or drive the second vibrator 120 to oscillate the touch sensorsurface 112 at approximately the first time in response to the firstlocation falling a third distance from the first vibrator 120 and afourth distance from the second vibrator 120 greater than the thirddistance. Therefore, the first and second vibrators can vibrate thetouch sensor surface 112 in different directions and at differentfrequencies based on proximity of an input to each vibrator 120. Thus,each vibrator 120 can cooperate to mimic the sensation of depression ofa mechanical key.

Alternatively, the controller 150 can, in response to detectingapplication of the first input onto the touch sensor surface 112proximal the first edge: at approximately the first time, drive thefirst vibrator 120 to oscillate the touch sensor surface 112 at a firstfrequency and a first amplitude, the first amplitude and the firstfrequency proportional to the first force magnitude while simultaneouslydriving the second vibrator 120 to oscillate the touch sensor surface112 at a second frequency and a second amplitude, the second frequencyless than the first frequency and the second amplitude less than thefirst amplitude. In this example, in response to detecting applicationof the first input onto the touch sensor surface 112 proximal the secondedge, the controller 150 can, at approximately the first time, drive thesecond vibrator 120 to oscillate the touch sensor surface 112 at a thirdfrequency and a third amplitude, the third amplitude and the thirdfrequency proportional to the first force magnitude; and drive the firstvibrator 120 to oscillate the touch sensor surface 112 at a fourthfrequency and a fourth amplitude in response to the first forcemagnitude exceeding the first threshold magnitude, the fourth frequencyless than the third frequency and the fourth amplitude less than thethird amplitude. Therefore, the controller 150 can actuate multiplevibrators simultaneously at different frequencies and in differentdirections based on proximity of an input to an origin of vibration.

In another variation, the controller 150 can select a first vibrator 120from a set of vibrators coupled to the touch sensor surface 112, thefirst vibrator 120 proximal (e.g., nearest) the first location of thetouch input on the touch sensor surface 112. The controller 150 can thenactuate the first vibrator 120 at a first oscillation frequencyproportional to the first force magnitude and over a first durationcorresponding to the first force magnitude. Alternatively, in responseto the second threshold magnitude exceeding the second force magnitudeat approximately the second time, the controller 150 can select a secondvibrator 120 from the set of vibrators distinct from the first vibrator120, the second vibrator 120 more proximal the first location than thefirst vibrator 120. Then the controller 150 can actuate the secondvibrator 120 according to the up-click cycle in Block S132 at a secondoscillation frequency distinct from the first oscillation frequency andover a second duration distinct from the first duration.

However, in the foregoing example, the controller 150 can detectapplication of a second input onto the touch sensor surface 112 at asecond location of the touch sensor surface 112 and a third forcemagnitude of the second input at a time coinciding with oscillation ofthe first vibrator 120 (i.e., while the first vibrator 120 is currentlyvibrating in response to application of the first touch input). Thecontroller 150 can remove the first vibrator 120 from the set ofvibrators to define a compressed (or abridged) set of vibrators coupledto the touch sensor surface 112 and available to oscillate the touchsensor surface 112, the first vibrator 120 nearest the second locationin the set of vibrators. The controller 150 can then select the secondvibrator 120 from the compressed set of vibrators nearest the secondlocation and actuate the second vibrator 120 according to the down-clickcycle. Later, the controller 150 can detect a force magnitude of thesecond input corresponding to retraction of the input from the touchsensor surface; and, in response to the threshold magnitude exceedingthe force magnitude of retraction of the second input, the controller150 can map the second location of the second input on the touch sensorsurface 112 to a second particular key of the keyboard associated with aregion of the touch sensor surface 112; and output an identifier of thesecond particular key and the second force magnitude of the second inputon the touch sensor surface 112.

The controller 150 can implement similar methods and techniques totrigger one or more speakers within the system 100 or within thecomputing device to execute a click cycle in response to an inputdetected on the touch sensor surface 112. For example, the system 100can include one or more discrete speakers coupled to (e.g., mounted on)the substrate 114. Alternatively, the controller 150 can trigger one ormore speakers (e.g., one or more audio monitors) integrated into thecomputing device containing or connected to the system 100 or anotherspeaker or audio drive remote from the substrate 114 to execute a clickcycle in response to a detected input on the touch sensor surface 112.

However, the controller 150 can implement any other method or techniqueto detect and to respond to inputs on the keyboard region of the touchsensor surface 112. Furthermore, the system 100 can implement methodsand techniques described above to vibrate the substrate 114 in adirection substantially normal to the touch sensor surface 112 (i.e.,out of the vibration plane described above.)

11. Overlay Vibrator

In one variation, the touch sensor 110 is mounted rigidly to a chassis130 (e.g., to a computing device chassis 130), and the system 100includes: an overlay 164 arranged over and disconnected from theresistive layer 124; and one or more vibrators configured to oscillatethe overlay 164 relative to the touch sensor 110 and substantiallyparallel to the substrate 114. In this variation, the overlay 164 can belocated over the touch sensor 110 by a flexure 186, by an elasticmembrane, or by any other structure extending from the chassis 130 orfrom the substrate 114 to one or more edges of the overlay 164 such thatthe overlay 164 can float over and move relative to the resistive layer124, such as up to 0.5 millimeter in each direction along a linearoscillation path of the vibrator 120. The vibrator 120 can be coupled toan edge of the overlay 164 and can oscillate the overlay 164 over andrelative to the resistive layer 124 when executing a click cycletriggered by the controller 150. For example, when a user depresses afirst finger into the overlay 164 while typing, the user's first fingermay constrain (or “pinch”) the adjacent region of the overlay 164against the resistive layer 124; when the force magnitude of the firstfinger on this first region of the overlay 164 exceeds a thresholdminimum force, the controller 150 can trigger the vibrator 120 toexecute a click cycle. As the vibrator 120 oscillates, sections of theoverlay 164 outside of the first region in contact with the user's firstfinger may oscillate relatively freely; however, with the first regionof the overlay 164 constrained by and mechanically coupled to the firstfinger, the first region of the overlay 164 can communicate vibrationsfrom the vibrator 120 into the user's first finger, thus providing theuser with a sensation of haptic feedback at this first finger. For theuser's other fingers that may be resting but not depressing othersections of the overlay 164, the overlay 164 may oscillate under thesefingers, though lack of substantial mechanical coupling between theoverlay 164 and the user's other fingers may limit the magnitude ofvibrations communicated into and detected by the user such that the userperceives haptic feedback—actually originating at the vibrator 120—tostem from a mechanical button or vibrator 120 directly below the user'sfinger.

In this variation, the system 100 can include multiple vibrators coupledto the overlay 164, such as one vibrator 120 on each lateral side of theoverlay 164, one vibrator 120 on the longitudinal side of the overlay164, and/or multiple vibrators interspersed along the perimeter of theoverlay 164. The controller 150 can implement methods and techniquesdescribed above to trigger one or a select subset of vibrators—near aninput detected on the touch sensor surface 112—to execute click cycles.

In this variation, the vibrator 120 (or each of multiple vibrators) caninclude: a piezoelectric actuator; an electromechanical solenoid with areturn spring; an electromechanical linear actuator; a linear resonantactuator; or another actuator coupled directly to the overlay 164.Alternatively, the vibrator 120 (or each of multiple vibrators) can becoupled to the overlay 164 remotely, such as via a linkage, cable, orother drive mechanism. Furthermore, the underside of the overlay 164and/or the top of the resistive layer 124 (or top of another layerinterposed between the overlay 164 and the resistive layer 124) candefine a variegated (e.g., serrated) profile such that, when thevibrator 120 oscillates the overlay 164 across the resistive layer 124in the vibrator 120 plane, the overlay 164 also oscillates along theZ-axis of the touch sensor 110, as shown in FIG. 5. For example, acrinkle spray coating can be applied over the back of the overlay 164and over the top of the resistive layer 124 to form a low-stiction butrough interface between the overlay 164 and the resistive layer 124 suchthat the overlay 164 grates against the resistive layer 124—and thusoscillates vertically—when moved within the vibration plane by thevibrator 120(s) during a click cycle. In this example, the coatings orsurface finishes on the back of the overlay 164 and/or the top of theresistive layer 124 (or other layer interposed between the overlay 164and the resistive layer 124) can be of a magnitude corresponding to atarget oscillating amplitude of the overlay 164 during a click cycle.

However, in this variation, the system 100 can include any other numberof vibrators and/or other any other feature to communicate hapticfeedback through an overlay 164 configured to oscillate over andrelative to the touch sensor 110.

12. Magnetic Coil Vibrator

In one variation, the vibrator 120 includes a magnetic coil mounted tothe substrate 114 and a magnetic (or ferrous) element coupled to thechassis 130 of the computing device, or vice versa. For example, themagnetic element can be potted into a recess in the computing devicechassis 130 in order to reduce the total height of the system 100 andcomputer system. Alternatively, the vibrator 120 can include: a magneticcoil arranged within a recess in the computing device chassis 130; andthe system 100 can include a magnetic element fastened (e.g., riveted,bonded, soldered) to the substrate 114. During a click cycle, thecontroller 150 drives the magnetic coil with an alternating current,which causes the magnetic coil to output an alternating magnetic fieldthat magnetically couples to the magnetic element (e.g., like avoice-coil), thereby oscillating the substrate 114 in the vibrationplane and relative to the chassis 1300. For example, the system 100 caninclude two discrete touch sensor 110 s, each with one (or more)magnetic coil paired with one (or more) magnetic element andcorresponding to one half of a keyboard. In this example, the controller150 can selectively trigger the magnetic coil coupled to the left touchsensor 110 to execute a click cycle when the left touch sensor 110detects an input, and the controller 150 can selectively trigger themagnetic coil coupled to the right touch sensor 110 to execute a clickcycle when the tight touch sensor 110 detects an input.

In another example, the system 100 includes: a single touch sensor 110that defines a keyboard, a left magnetic coil mounted to the left sideof the keyboard (e.g., adjacent the left edge of substrate 114) andpaired with a left magnetic element arranged in the computing devicechassis 130; and a right magnetic coil mounted to the right side of thekeyboard (e.g., adjacent the right edge of substrate 114) and pairedwith a right magnetic element arranged in the computing device chassis1300. In this example, the controller 150 can trigger the left magneticcoil to execute a click cycle but leave the right magnetic coil dormantwhen the left touch sensor 110 detects an input in order to primarilyvibrate the left side of the substrate 114, to cause the left side ofthe substrate 114 to pivot about the right side of the substrate 114,and to preferentially communicate this vibration into a finger incontact with the left side of the touch sensor surface 112 over anotherfinger or object in contact with the right side of the touch sensorsurface 112.

In a similar variation in which the system 100 includes a discreteoverlay 164 over the touch sensor 110 and oscillates the overlay 164 inresponse to detection of an input on the overlay 164, the system 100includes a magnetic coil arranged on the substrate 114 (or in thecomputing device chassis 130), and the overlay 164 include a magnetic(or ferrous) insert, or vice versa. For example, the overlay 164 caninclude a bar magnet, a steel wire, a ferrous rod, or other magnetic orferrous element embedded in the overlay 164 over the magnetic coil andextending along one side of the overlay 164. During a click cycle, themagnetic coil can output an oscillating magnetic field that magneticallycouples to the magnetic or ferrous element to oscillate the overlay164—parallel to the vibration plane—relative to the substrate 114. Inthis example, the system 100 can include a second magnetic or ferrouselement embedded or otherwise coupled to the opposite end of the overlay164 and a second magnetic coil that magnetically couples to the secondmagnetic or ferrous element and cooperates with the (first) magneticcoil to oscillate the overlay 164 laterally during a click cycle.

In a similar example, the overlay 164 includes multiple linear ferrousor magnetic elements embedded in the overlay 164, defining axes parallelto the short edges of the substrate 114, and offset along the width ofthe overlay 164. In this example, the system 100 also includes multiplemagnetic coils arranged across the center and/or perimeter of thesubstrate 114. During a click cycle, the controller 150 can thus triggerall magnetic coils to output oscillating magnetic fields that couplewith and laterally oscillate adjacent magnetic or ferrous element in theoverlay 164 in order to oscillate the overlay 164 at a relatively largeamplitude during the click cycle. Alternatively, during a click cycle,the controller 150 can selectively trigger one or a subset of magneticcoils nearest an input detected on the overlay 164 to output anoscillating magnetic field in order to preferentially oscillate a localregion of the overlay 164 nearest the input.

Alternatively, ferrous or magnetic particulate can be impregnated,embedded, or molded into the overlay 164, such as uniformly across thewidth and length of the overlay 164 or selectively in discrete blocks,rows, or columns along the width and length of the overlay 164. In thisimplementation, the system 100 can also include one or more magneticcoils arranged on the substrate 114. When triggered by the controller150 during a click cycle, a magnetic coil can output an oscillatingmagnetic field that couples to magnetic or ferrous particles in anadjacent region of the overlay 164, which can cause the overlay 164 tooscillate—locally or globally—relative to the substrate 114.

13. Inputs Between Keys

In one variation, the controller 150 can: detect an input on the touchsensor surface 112 between discrete regions bounding keys of a keyboardsurface overlaid on the touch sensor 110; and selectively actuate one ormore vibrators to mimic nearly simultaneous depression of multiplemechanical keys. In this variation, the controller 150 can selectivelydrive the set of vibrators in order to achieve a target vibrationfrequency and magnitude at the location of the touch input betweendesignated keys, such as by tuning frequencies, phases, amplitudes,and/or duration of these vibrators to instigate user's impression ofsimultaneous depression of multiple mechanical keys.

For example, the controller 150 can detect application of the firstinput onto the touch sensor surface 112 at the first locationcorresponding to an interstitial between (and/or overlapping) a firstkey and a second key of the keyboard. The controller 150 can then, inresponse to a second distance between the first location and a boundaryof the second key of the keyboard exceeding a first distance between thefirst location and a boundary of the first key of the keyboard, actuatethe first vibrator 120 at a first frequency and a first amplitudedefined as a function of the first force magnitude and proximity to thefirst key, the first vibrator 120 assigned to the first key andoscillating a region of the touch sensor surface 112 including andsurrounding the first key. In response to the first distance exceedingthe second distance, the controller 150 can actuate a second vibrator120 coupled to the touch sensor surface 112 at a second frequency and asecond amplitude defined as a function of the first force magnitude andproximity to the second key, the second vibrator 120 assigned to thesecond key and oscillating a region of the touch sensor surface 112comprising and surrounding the second key.

However, the controller 150 can map inputs interposed between discretekeys of the keyboard surface to any other command and can actuatevibrators and/or audio drivers 140 to generate corresponding hapticfeedback to mimic simultaneous depression of multiple mechanical keys ofa mechanical keyboard in any other suitable way.

14. Trackpad+Keyboard

In one variation in which the computing device defines a laptopcomputer, the computing device includes a receptacle spanningsubstantially the full width and length of its C-side, the system 100can define both a trackpad region and a keyboard region, as shown inFIGS. 12A and 12B. In this variation, the controller 150 can implementthe foregoing methods and techniques to respond to inputs on a trackpadregion by triggering a click cycle and outputting a click command, acursor vector, or a scroll command, etc. In this variation, thecontroller 150 can designate discrete key regions of a keyboard (e.g.,26 alphabetical key regions, 10 numeric key regions, and variouspunctuation and control keys) and can trigger a click cycle and output akeystroke command in response to a detected input on a correspondingdiscrete key region of the keyboard.

In one implementation, the touch sensor surface 112 defines a continuoussurface across the keyboard and trackpad regions, and the system 100includes key designators (e.g., alphanumeric characters, punctuationcharacters) printed onto or otherwise applied to discrete key regionsacross the keyboard region of the touch sensor surface 112, such as awhite ink screen-printed across the touch sensor surface 112. In thisimplementation, the system 100 can also include borders for the discretekey regions and/or for the trackpad region designated in such ink. Thesystem 100 can additionally or alternatively include key designatorsand/or region designators embossed or debossed across the touch sensorsurface 112 to enable a user to tactilely discriminate between variousregions across the touch sensor surface 112. Yet alternatively, thesystem 100 can include a keyboard overlay 164—including visually- ormechanically-distinguished discrete key regions—installed over thekeyboard region of the touch sensor surface 112 to define commands orinputs linked to various discrete input regions within the keyboardregion. In this implementation, the keyboard overlay 164 can betransiently installed on (i.e., removable from) the keyboard region ofthe touch sensor surface 112, such as to enable a user to exchange afirst keyboard overlay 164 defining a QWERTY keyboard layout with asecond keyboard overlay 164 defining an AZERTY keyboard layout. In thisimplementation, depression of a discrete key region of an overlay 164placed over the keyboard region of the touch sensor surface 112 canlocally compress the resistive layer 124, which can modify the bulkresistance and/or the contact resistance of the resistive layer 124 onthe drive and sense electrodes; and the controller 150 can register suchchange in bulk resistance and/or contact resistance of the resistivelayer 124 as an input, associate a particular keystroke with this inputbased on the location of the input, output the keystroke to a processingunit within the computing device, and trigger a click cycle.

In this variation, the trackpad region can be interposed between thekeyboard region and a near edge of the C-side of the computing deviceand may run along a substantial portion of the width of the keyboardregion such that a user may rest her palms on the trackpad when typingon the keyboard. During operation, the controller 150 can characterizean input on the trackpad as a palm and reject such an input in favor ofinputs on the keyboard region in order to record keystrokes rather thancursor movements when a user is typing on the keyboard region. Forexample, the controller 150 can implement pattern matching or templatematching techniques to match one or more input areas detected on thetrackpad region of the touch sensor surface 112 with one or two palms,and the controller 150 can reject these inputs. In this example, thecontroller 150 can confirm identification of an input area ascorresponding to a resting palm (e.g., confirm a match between an inputarea and a labeled palm template) in response to detection of one or asequence of inputs (e.g., “keystrokes”) on the keyboard region of thetouch sensor surface 112; and vice versa. The system 100 can alsocapture input areas on the trackpad region, store these input areas asnew template images, label these new template images as indicative of aresting palm or not indicative of a resting palm based on detection of akeystroke on the keyboard area following within a threshold time (e.g.,three seconds) of detection of an input area on the trackpad region.However, the controller 150 can implement any other palm rejectionmethods or techniques and can implement any other method or technique toautomatically train a palm rejection model.

Furthermore, the system 100 can transform an input detected within thetrackpad region of the touch surface as one of various commands, such asbased on the initial location, final location, speed, force (orpressure) magnitude, etc. of the input on the touch surface. Forexample, the controller 150 can interpret an input on the touch surfaceas one of a click, deep-click scroll, zoom, and cursor motion commandsbased on methods and techniques described above. In this example, thecontroller 150 can interpret a first force applied to the trackpadregion—up to a first depression threshold magnitude defining a clickinput within the trackpad region—followed by release of the first forcefrom the trackpad region (i.e., to less than a first release thresholdmagnitude less than the first depression threshold magnitude) as aselection (or “left click”) input. The controller 150 can then output aselection (or “left click”) command and execute a “down” click cycle andthen an “up” click cycle accordingly, such as through a first vibrator120 under the trackpad region of the touch sensor surface 112.

Similarly, the controller 150 can interpret a second force applied tothe trackpad region—up to a second depression threshold magnitudedefining a “deep” click (or “right click”) input within the trackpadregion—followed by release of the second force from the trackpad region(i.e., to less than the first release threshold magnitude) as a “deepclick” input as shown in FIG. 10B. The controller 150 can then output a“deep click” (or “right click”) command and execute a “deep down” clickcycle and then an “up” click cycle accordingly through the firstvibrator 120.

Furthermore, the controller 150 can interpret a third force applied tothe keyboard region—up to a third depression threshold magnitudedefining a click input within the keyboard region (e.g., less than thefirst depression threshold magnitude)—as a keystroke for a characterassigned to the location of the third force on the touch sensor surface112; the controller 150 can then output this keystroke and execute asingle “down” click cycle through a second vibrator 120 under thekeyboard region of the touch sensor surface 112. The controller 150 canrepeatedly output the keystroke until release of the third force fromthe keyboard region (i.e., to less than a second release thresholdmagnitude less than the second depression threshold magnitude) isdetected and then execute an “up” click cycle accordingly.

The controller 150 can also interpret two distinct touch inputs movingtoward one another or moving away from one another on the touch sensorsurface 112 as a zoom-out input or as a zoom-in input, respectively.Furthermore, the controller 150 can generate a cursor vector based on aspeed and direction of an input moving across the touch sensor surface112 and output these cursor vectors to a processing unit or othercontroller 150 within the computing device substantially in real-time.

However, the controller 150 can detect any other inputs of any otherform or type on the touch sensor surface 112 and respond to these inputsin any other way.

15. Additional Sensing

In one variation, the system 100 includes a capacitive sensor, opticalsensor, magnetic displacement sensor, strain gauge, FSR, or any othersensor coupled to the chassis 130 and/or to the substrate 114 andconfigured to detect displacement of the substrate 114 in the vibration(e.g., X-Y) plane responsive to a force applied to the touch sensorsurface 112. The controller 150 can then output a command based on suchin-plane displacement or force applied to the touch sensor surface 112.

Similarly, the system 100 can include a capacitive sensor, opticalsensor, magnetic displacement sensor, strain gauge, FSR, or any othersensor coupled to the chassis 130 and/or to the substrate 114 andconfigured to detect absolute displacement of the substrate 114 out ofthe vibration plane (i.e., along a Z-axis), as shown in FIG. 11C. Inthis variation, the controller 150 can transform a determined absolutedisplacement of the substrate 114 into an absolute magnitude of a forceapplied to the touch sensor surface 112 based on a known spring constantof the coupler 132. The controller 150 can then compare this absoluteforce magnitude to relative force magnitudes of objects in contact withthe touch sensor surface 112 in order to calculate the absolute forcemagnitude of each object in contact with the touch sensor surface 112 atany one time. The controller 150 can then output a command for one ormore touch inputs on the touch sensor surface 112 accordingly.

However, the system 100 can be incorporated into any other type ofcomputing device in any other way.

The systems and methods described herein can be embodied and/orimplemented at least in part as a machine configured to receive acomputer-readable medium storing computer-readable instructions. Theinstructions can be executed by computer-executable componentsintegrated with the application, applet, host, server, network, website,communication service, communication interface,hardware/firmware/software elements of a user computer or mobile device,wristband, smartphone, or any suitable combination thereof. Othersystems and methods of the embodiment can be embodied and/or implementedat least in part as a machine configured to receive a computer-readablemedium storing computer-readable instructions. The instructions can beexecuted by computer-executable components integrated bycomputer-executable components integrated with apparatuses and networksof the type described above. The computer-readable medium can be storedon any suitable computer readable media such as RAMs, ROMs, flashmemory, EEPROMs, optical devices (CD or DVD), hard drives, floppydrives, or any suitable device. The computer-executable component can bea processor but any suitable dedicated hardware device can(alternatively or additionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

We claim:
 1. A system comprising: a touch sensor comprising a set ofsense electrode and drive electrode pairs and a substrate;force-sensitive material coupled to the touch sensor; a tactile surfacearranged over the touch sensor; a first vibrator configured to oscillatethe tactile surface; a spacer arranged below the touch sensor andconfigured to yield to displacement of the substrate during oscillationof the tactile surface; and a controller configured to: detectapplication of a first input onto the tactile surface and a first forcemagnitude of the first input at a first time based on a first change inresistance between a first sense electrode and drive electrode pair inthe touch sensor; execute a down-click cycle by driving the firstvibrator to oscillate the tactile surface at a first frequency and overa first duration in response to the first force magnitude exceeding afirst threshold magnitude; detect a second force magnitude of the firstinput at a second time succeeding the first time based on a secondchange in resistance between the first sense electrode and driveelectrode pair; and execute an up-click cycle by driving the firstvibrator to oscillate the tactile surface at a second frequency over asecond duration in response to the second force magnitude falling belowa second threshold magnitude less than the first threshold magnitude,the second frequency greater than the first frequency, and the secondduration less than the first duration.
 2. The system of claim 1, whereinthe controller is configured to: detect application of a second inputonto the tactile surface and a third force magnitude of the second inputat a third time based on a third change in resistance between the firstsense electrode and drive electrode pair in the touch sensor; andexecute a deep-click cycle by driving the first vibrator to oscillatethe tactile surface at a third frequency and over a third durationgreater than the first duration in response to the third force magnitudeexceeding a third threshold magnitude greater than the first thresholdmagnitude.
 3. The system of claim 1: wherein the set of sense electrodeand drive electrode pairs comprises a grid array of sense electrode anddrive electrode pairs that is continuous across the substrate; andwherein the force-sensitive material defines a continuous layerextending over the touch sensor.
 4. The system of claim 1, wherein thecontroller is configured to: execute the down-click cycle in response tothe first force magnitude exceeding the first threshold magnitude of 120grams; and execute the up-click cycle in response to the second forcemagnitude falling below the second threshold magnitude of 60 grams. 5.The system of claim 1: wherein the tactile surface defines a surface ofa keyboard; and wherein the controller is further configured to: map alocation of the first input to a first key of the keyboard; and output atouch image representing the first force magnitude of the first inputand the first key at approximately the first time.
 6. The system ofclaim 5, wherein the controller is further configured to: detectapplication of a second input onto the tactile surface and a third forcemagnitude of the second input at a third time based on a third change inresistance between the first sense electrode and drive electrode pair inthe touch sensor; map a location of the second input to a second key ofthe keyboard; execute a second down-click cycle by driving the firstvibrator to oscillate the tactile surface at a third frequency,different from the first frequency, and over a third duration inresponse to the third force magnitude exceeding the first thresholdmagnitude; and output a second touch image representing the third forcemagnitude of the second input and the second key at approximately thethird time.
 7. The system of claim 5: wherein the tactile surfacecomprises: a first region associated with a first subset of keys of thekeyboard; and a second region adjacent the first region and associatedwith a second subset of keys of the keyboard; and further comprising anisolator coupled to the tactile surface and configured to limittransmission of vibration between the first region and the second regionof the tactile surface; wherein the first vibrator is coupled to thefirst region of the tactile surface and is configured to oscillate thefirst region of the tactile surface; and further comprising a secondvibrator coupled to the second region of the tactile surface andconfigured to oscillate the second region of the tactile surface.
 8. Thesystem of claim 7, wherein the controller is further configured to: inresponse to detecting application of the first input on the first regionof the tactile surface: drive the first vibrator to oscillate the firstregion of the tactile surface during the down-click cycle; and map thelocation of the first input to the first key in the first subset of keysof the keyboard; and in response to detecting application of a secondinput on the second region of the tactile surface: drive the secondvibrator to oscillate the second region of the tactile surface during asecond down-click cycle in response to a third force magnitude of thesecond input exceeding the first threshold magnitude; and map a locationof the second input to a second key in the second subset of keys of thekeyboard.
 9. The system of claim 1: further comprising a second vibratorcoupled to the tactile surface and configured to oscillate the tactilesurface; and wherein the controller is further configured to: drive thefirst vibrator to oscillate the touch sensor surface proximal the firstinput during the down-click cycle at approximately the first time inresponse to detecting application of the first input at a first distancefrom the first vibrator, and at a second distance, greater than thefirst distance, from the second vibrator; and drive the second vibratorto oscillate the touch sensor surface proximal the first input duringthe down-click cycle at approximately the first time in response todetecting application of the first input at a third distance from thefirst vibrator, and at a fourth distance, less than the third distance,from the second vibrator.
 10. The system of claim 1: further comprisinga chassis; wherein the spacer couples the touch sensor to the chassis;wherein the first vibrator is arranged proximal a first edge of thetactile surface and configured to oscillate the tactile surface relativeto the chassis by translating the tactile surface along a first axisparallel to the tactile surface; and further comprising a secondvibrator coupled to the tactile surface arranged proximal a second edgeof the tactile surface opposite the first edge and configured tooscillate the tactile surface relative to the chassis by translating thetactile surface along a second axis orthogonal to the first axis andparallel to the tactile surface.
 11. The system of claim 10, wherein thecontroller is further configured to, in response to detectingapplication of the first input at a first location on the tactilesurface, the first force magnitude of the first input exceeding thefirst threshold magnitude: in response to the first location falling afirst distance from the first vibrator and a second distance from thesecond vibrator less than the first distance, execute the down-clickcycle by driving the first vibrator to oscillate the tactile surfacewith a first amplitude at approximately the first time and driving thesecond vibrator to oscillate the tactile surface with a second amplitudegreater than the first amplitude at approximately the first time.
 12. Asystem comprising: a touch sensor comprising a set of sense electrodeand drive electrode pairs and a substrate; force-sensitive materialcoupled to the touch sensor; a tactile surface arranged over the touchsensor; a first vibrator configured to oscillate the tactile surface;and a controller configured to: detect application of a first input ontothe tactile surface and a first force magnitude of the first input at afirst time based on a first change in resistance between a first senseelectrode and drive electrode pair in the touch sensor; execute adown-click cycle by driving the first vibrator to oscillate the tactilesurface at a first frequency and over a first duration in response tothe first force magnitude exceeding a first threshold magnitude; detecta second force magnitude of the first input at a second time succeedingthe first time based on a second change in resistance between the firstsense electrode and drive electrode pair; and execute an up-click cycleby driving the first vibrator to oscillate the tactile surface inresponse to the second force magnitude falling below a second thresholdmagnitude less than the first threshold magnitude.
 13. The system ofclaim 12, wherein the controller is configured to: execute the up-clickcycle by driving the first vibrator to oscillate the tactile surface ata second frequency over a second duration in response to the secondforce magnitude falling below the second threshold magnitude, the secondfrequency greater than the first frequency, and the second duration lessthan the first duration.
 14. The system of claim 12: wherein the tactilesurface defines a surface of a keyboard; and wherein the controller isfurther configured to: map a location of the first input to a key of thekeyboard; and output a touch image representing the first forcemagnitude of the first input and the key of the keyboard atapproximately the first time.
 15. The system of claim 12: wherein theforce-sensitive material defines a continuous layer extending over thetouch sensor; wherein the first vibrator is configured to oscillate thetactile surface within a plane parallel to the tactile surface; andfurther comprising a spacer arranged below the touch sensor andconfigured to yield to displacement of the substrate during oscillationof the tactile surface within the plane parallel to the tactile surface.16. The system of claim 12: further comprising a chassis; wherein thespacer couples the touch sensor to the chassis; wherein the firstvibrator is arranged proximal a first edge of the tactile surface and isconfigured to oscillate the tactile surface relative to the chassis bytranslating the tactile surface along a first axis parallel to thetactile surface; and further comprising a second vibrator coupled to thetactile surface arranged proximal a second edge of the tactile surfaceopposite the first edge and configured to oscillate the tactile surfacerelative to the chassis by translating the tactile surface along asecond axis orthogonal to the first axis and parallel to the tactilesurface.
 17. A system comprising: a touch sensor comprising a set ofsense electrode and drive electrode pairs and a substrate; a tactilesurface arranged over the touch sensor; a vibrator coupled to thetactile surface and configured to oscillate the tactile surface; aspacer arranged below the touch sensor and configured to yield todisplacement of the substrate during oscillation of the tactile surface;and a controller configured to: detect application of a first input ontothe tactile surface and a first force magnitude of the first input at afirst time based on a first change in resistance between a first senseelectrode and drive electrode pair in the touch sensor; execute adown-click cycle by driving the first vibrator to oscillate the tactilesurface at a first frequency and over a first duration in response tothe first force magnitude exceeding a first threshold magnitude; detecta second force magnitude of the first input at a second time succeedingthe first time based on a second change in resistance between the firstsense electrode and drive electrode pair; and execute an up-click cycleby driving the first vibrator to oscillate the tactile surface at asecond frequency in response to the second force magnitude falling belowa second threshold magnitude less than the first threshold magnitude,the second frequency greater than the first frequency.
 18. The system ofclaim 17: further comprising force-sensitive material coupled to thetouch sensor; wherein the tactile surface extends over theforce-sensitive material; and wherein the vibrator is configured tooscillate the tactile surface within a plane parallel to the tactilesurface.
 19. The system of claim 17: wherein the tactile surface definesa surface of a keyboard; and wherein the controller is furtherconfigured to: map a location of the first input to a key of thekeyboard; and output a touch image representing the first forcemagnitude of the first input and the key at approximately the firsttime.
 20. The system of claim 19: wherein the set of sense electrode anddrive electrode pairs comprises a grid array of sense electrode anddrive electrode pairs that is continuous across the substrate; andwherein the force-sensitive material defines a continuous layerextending over the touch sensor.
 21. A system comprising: a touch sensorcomprising a set of sense electrode and drive electrode pairs and asubstrate; a force-sensitive material coupled to the touch sensor; atactile surface arranged over the touch sensor; a first vibratorconfigured to oscillate the tactile surface; a controller configured to:detect application of a first input onto the tactile surface and a firstforce magnitude of the first input at a first time based on a firstchange in resistance between a first sense electrode and drive electrodepair in the touch sensor; execute a down-click cycle by driving thefirst vibrator to oscillate the tactile surface at a first frequency andover a first duration in response to the first force magnitude exceedinga first threshold magnitude; detect a second force magnitude of thefirst input at a second time succeeding the first time based on a secondchange in resistance between the first sense electrode and driveelectrode pair; and execute an up-click cycle by driving the firstvibrator to oscillate the tactile surface over a second duration inresponse to the second force magnitude falling below a second thresholdmagnitude less than the first threshold magnitude, the second durationless than the first duration.
 22. A system comprising: a touch sensorcomprising a set of sense electrode and drive electrode pairs and asubstrate; a tactile surface arranged over the touch sensor; a vibratorcoupled to the tactile surface and configured to oscillate the tactilesurface; and a controller configured to: detect application of a firstinput onto the tactile surface and a first force magnitude of the firstinput at a first time based on a first change in resistance between afirst sense electrode and drive electrode pair in the touch sensor;execute a down-click cycle by driving the first vibrator to oscillatethe tactile surface at a first frequency and over a first duration inresponse to the first force magnitude exceeding a first thresholdmagnitude; detect a second force magnitude of the first input at asecond time succeeding the first time based on a second change inresistance between the first sense electrode and drive electrode pair;and execute an up-click cycle by driving the first vibrator to oscillatethe tactile surface at a second frequency in response to the secondforce magnitude falling below a second threshold magnitude less than thefirst threshold magnitude, the second frequency greater than the firstfrequency.